MD5 produce un output di 16 byte, ovvero 16 valori compresi tra 0 e 255. Quello che vedi è probabilmente un esadecimale rappresentazione di quei byte: ogni byte è codificato come due caratteri presi tra le cifre ('0' a '9') e le prime lettere minuscole ('a' a 'f'). Ogni carattere deve essere interpretato come avente un valore numerico compreso tra 0 e 15 ('a' è 10, 'b' è 11, ... e 'f' è 15). In una coppia di caratteri corrispondente a un determinato byte, il primo carattere ha un valore di sedici volte. Ad esempio, un byte di valore 92 è rappresentato come '5c' perché 92 è uguale a 5 * 16 + 12, e 'c' rappresenta 12.