Ein MD5-Wert sind genau 16 Byte. Die 32 Byte kommen zustande, wenn man ihn durch Hex-Darstellung lesbarer gestaltet. Siehe PHP-Funktion md5(), Parameter raw_output.
sag ich ja - ein 128-bit-md5-hash hat genau 16 bytes - die meisten leute speichern die dinger in datenbanken aber als char/varchar/text - das benötigt dann konsequenterweise bei 32 hexadezimalziffern 32 bytes