# MD5 display format

When I run MD5 algorithm I am getting an output in numeric and a few lower case letters. Obviously it uses all numeric digits and rarely i saw some lower case alphabet letter. I need to understand what all the lower case values are in the MD5 output....

-

MD5 produces an output of 16 bytes, i.e. 16 values between 0 and 255. What you see is probably an hexadecimal representation of those bytes: each byte is encoded as two characters taken among the digits ('0' to '9') and the first lowercase letters ('a' to 'f'). Each character is to be interpreted as having a numerical value between 0 and 15 ('a' is 10, 'b' is 11,... and 'f' is 15). In a pair of characters corresponding to a given byte, the first character has sixteenfold value. E.g., a byte of value 92 is represented as '5c' because 92 is equal to 5*16+12, and 'c' represents 12.

-
Thanks a lot Thomas... Do SHA and RSA too generate hexadecimal values? – Kars Feb 24 '11 at 22:10
@kars Most modern cryptographic algorithms, including SHA and RSA, simply work with big numbers, which can be represented in many ways: base 16 (hexadecimal) like this is common, but so is base 64, or binary, or others. – nealmcb Feb 25 '11 at 2:33
@Kars: all cryptographic algorithms produce, more or less, sequences of bits. Bits are assembled into bytes (specifically "octets": a group of eight bits). Any sequence of bytes can be encoded in hexadecimal in the way I describe. – Thomas Pornin Feb 25 '11 at 15:30

without knowing what implementation of the md5 algorithm your code is using, it's very likely that it's hexidecimal as that is somewhat standard output for md5 routines. See RFC 1321.

-