RE:
http://www.mediawiki.org/wiki/Requests_for_comment/Database_field_for_check…
Recently, Adding MD5 / SHA1 column to revision table (discussing r94289)
was discussed.
For some applications, I use the technique of representing the 128 bit
of md5 or other checksums
as base-62 character strings
instead of hexadecimal (base-16) strings.
When you need a non-binary, i.e. character representation for
displaying, storing or transmitting checksums,
you should always consider to use base-62 instead of base-16
representations (for md5 you need 22 bytes instead of 32 bytes).
When you encode the 128 bits of MD5 (example) in base-16 aka
/hexadecimal/, you need CHAR(32).
When you use the technique of enoding the 128 bits in /base-62/ with
characters from [A-Za-z0-9], you'll need CHAR(22).
See
http://de.php.net/manual/en/function.md5.php#83321 for one possible
implementation.
I found this for example first in Microsofts free FCIV program which
creates checksum xml files and uses this shorter representation.