Я хотел обобщить некоторые ответы в один пост.
Во-первых, не воспринимайте хеш MD5 как строку символов, а как шестнадцатеричное число. Следовательно, каждая цифра является шестнадцатеричной цифрой (0-15 или 0-F) и представляет четыре бита, а не восемь.
В дальнейшем один байт или восемь битов представлены двумя шестнадцатеричными цифрами, например, b ' 1111 1111
' = 0xFF
= 255
.
Хэши MD5 имеют длину 128 бит и обычно представлены 32 шестнадцатеричными цифрами.
Хэши SHA-1 имеют длину 160 бит и обычно представлены 40 шестнадцатеричными цифрами.
Я думаю, что для семейства SHA-2 длина хэша может быть одной из предопределенных. Таким образом, SHA-512 может быть представлен 128 шестнадцатеричными цифрами.
Опять же, этот пост основан только на предыдущих ответах.