Fix MD5 generation to properly pad to 32 chars with zeroes