128 бит сколько символов
Перейти к содержимому

128 бит сколько символов

  • автор:

MD5-это 128 бит, но почему это 32 символа?

Я читал некоторые документы о md5, он сказал, что его 128 бит, но почему это 32 символа? Я не могу вычислить символы.

  • 1 байт — это 8 бит
  • если 1 символ-1 байт
  • тогда 128 бит-это 128/8 = 16 байт правильно?

SHA-1 создает 160 бит, так сколько персонажей?

7 ответов

32 символа как шестнадцатеричное представление, это 2 символа на байт.

Я хотел собрать описание ответы на некоторые вопросы в одном посте.

во-первых, не думайте о хэше MD5 как о символьной строке, а как о шестнадцатеричном числе. Поэтому каждая цифра является шестнадцатеричной (0-15 или 0-F) и представляет собой четыре бита, а не восемь.

принимая это дальше, один байт или восемь бит представлены двумя шестнадцатеричными цифрами, например b’ 1111 1111 ‘ = 0xFF = 255 .

MD5 хэши имеют длину 128 бит и обычно представлены 32 шестнадцатеричными десятичные знаки.

SHA-1 хэши имеют длину 160 бит и обычно представлены 40 шестнадцатеричными цифрами.

для семейства SHA-2 я думаю, что длина хэша может быть одной из предопределенного набора. Таким образом, SHA-512 может быть представлен 128 шестнадцатеричными цифрами.

опять же, этот пост основан только на предыдущих ответах.

MD5 дает шестнадцатеричные цифры (0-15 / 0-F), поэтому они по четыре бита каждый. 128 / 4 = 32 символа.

SHA-1 также дает шестнадцатеричные цифры (0-15 / 0-F), поэтому 160 / 4 = 40 символов.

(поскольку они являются математическими операциями, вывод большинства функций хэширования обычно представляется в виде шестнадцатеричных цифр.)

вы, вероятно, думали о текстовых символах ASCII, которые составляют 8 бит.

шестнадцатеричный » символ «(грызть) отличается от»символа»

чтобы быть ясным на битах против байта, против символов.

  • 1 байт-это 8 бит (для наших целей)
  • 8 бит обеспечивает 2**8 возможные комбинации: 256 комбинаций

когда вы смотрите на шестнадцатиричный символ,

  • 16 комбинаций [0-9] + [a-f] : весь ассортимент 0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f
  • 16 меньше чем 256, поэтому одно один шестнадцатеричный символ делает не хранить байт.
  • 16 составляет 2**4 : это означает, что один шестнадцатеричный символ может хранить 4 бита в байте (полбайта).
  • таким образом, два шестнадцатеричных символа, могут хранить 8 бит, 2**8 комбинаций.
  • байт, представленный в виде шестнадцатеричного символа [0-9a-f][0-9a-f] и это представляет обе половины байта (мы называем полбайта клев). В каком порядке на самом деле зависит от спецификации или платформы: 0F может представлять либо 00001111 или 11110000 .

когда вы смотрите на обычный однобайтовый символ, (мы полностью собираемся пропустить многобайтовые и широкие символы здесь)

Добавить комментарий

Ваш адрес email не будет опубликован.