7 votes

Est-ce qu'un hachage SHA-1 peut être uniquement numérique ?

Y a-t-il une chance qu'un hachage SHA-1 soit uniquement numérique, ou l'algorithme garantit-il qu'il doit y avoir au moins un caractère alphabétique?

Modifier: Je le représente en base 16, en tant que chaîne retournée par la fonction sha1() de PHP.

19voto

cobbal Points 37900

Techniquement, un hash SHA1 est un numéro, il est juste le plus souvent encodé en base 16 (ce que fait sha1() en PHP) de sorte qu'il a presque toujours une lettre en lui. Cependant, cela n'est pas garanti.

Les chances qu'un numéro de 160 bits encodé en hexadécimal n'ait pas de chiffres A-F sont (10/16)40 ou environ 6.84227766 × 10-9

3voto

David Johnstone Points 10565

Le hachage SHA-1 est un nombre de 160 bits. Pour faciliter son écriture, il est généralement écrit en hexadécimal. Les chiffres hexadécimaux (base 16) sont 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e et f. Il n'y a rien de spécial à propos des lettres. Chaque caractère hexadécimal équivaut à 4 bits, ce qui signifie que le hachage peut être écrit en 40 caractères.

Je ne crois pas qu'il y ait de raison pour laquelle un hachage SHA-1 ne peut pas avoir de lettres, mais c'est improbable. C'est comme générer un nombre aléatoire de 40 chiffres (base 10) et ne pas obtenir de 7, 8 ou 9.

1voto

Assaf Lavie Points 20181

Vous pouvez représenter la sortie de SHA1 (tout comme n'importe quelle donnée binaire) dans n'importe quelle base que vous voulez. En particulier, vous pouvez encoder le résultat en base-8/10.

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