Oh, variable ints are surely a thing. You don't even have to go as far as crypto - if you're using UTF-8, you are using the same idea. Which also reveals its downsides once you need to parse utf-8 strings into parts and do operations like wrapping or splitting. That's why I wonder if they are really needed there. I mean, the space optimization is obvious, but I suspect it might be premature, unless you are storing really billions or trillions of hashes and need to squeeze out every single kilobyte out of it.