RFC-3548 describes BASE32 encoding, which is case insensitive, and
already well-defined and available in many programming libraries. It
encodes each group of 40 input bits as But we still have those
irritating equals signs in the address, which some MTAs still won't
like.
Make your hash a multiple of 40 bits long. No padding will result.
Why not just use hex (BASE16)? I mean, it's verbose, but EVERY mta
accepts 0-9 and a-f as the address part. Who cares if the source
address is 80 bytes long? RFCs specify line lengths up to 1000
characters.
Let see:
40-bit hash = 7 base64 chars = 8 base32 chars = 10 hex chars
80-bit hash = 14 base64 chars = 16 base32 chars = 20 hex chars
120-bit hash = 21 base64 chars = 24 base32 chars = 30 hex chars
How long are you guys planning to make those hashes? I'd say that for 80-bits
or less, hex is the least problematic.
Michael R. Brumm