129 votes

MD5 c'est 128 bits mais pourquoi c'est 32 caractères ?

J'ai lu des docs sur md5, il dit que c'est 128 bits, mais pourquoi c'est 32 caractères ? Je ne peux pas calculer les caractères.

  • 1 octet correspond à 8 bits
  • si 1 caractère vaut 1 octet
  • alors 128 bits équivaut à 128/8 = 16 octets, n'est-ce pas ?

ÉDITER:

SHA-1 produit 160 bits, alors combien de caractères y a-t-il ?

128voto

ba__friend Points 3306

32 caractères sous forme de représentation hexadécimale, soit 2 caractères par octet.

29voto

Wiseguy Points 9441

MD5 donne des chiffres hexadécimaux (0-15 / 0-F), ils sont donc de quatre bits chacun. 128 / 4 = 32 caractères.

SHA-1 donne également des chiffres hexadécimaux (0-15 / 0-F), donc 160 / 4 = 40 caractères.

(Comme il s'agit d'opérations mathématiques, la sortie de la plupart des fonctions de hachage est généralement représentée par des chiffres hexadécimaux.)

Vous pensiez probablement aux caractères de texte ASCII, qui sont de 8 bits.

9voto

Brett Thomas Points 174

Cela fait 32 caractères hexadécimaux - 1 caractère hexadécimal correspond à 4 bits.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X