2010-09-23 2 views
3

Lors de la création d'un mot de passe avec sha1pass, la première valeur du jeton est "4".

Par exemple:

sha1pass test 

nous donne:

$4$GTdnmykS$25iwV+ruXRwor4pUmKF57uXHj70$ 

Le jeton utilise $ comme séparateurs: 25iwV+ruXRwor4pUmKF57uXHj70 est le hachage calculé, GTdnmykS est le sel produit, puisque je ne l'ai pas fournir une deuxième paramètre, mais que signifie 4?

Le 4 est en fait hardcoded, c'est la dernière ligne de sha1pass, qui est un script Perl:

print '$4$', $salt, '$', $pass, "\$\n"; 

Pourquoi est la première valeur de ce jeton « 4 », et qu'est-ce que cela signifie?

Répondre

6

J'ai vu la convention utilisée où $ 1 $ dénote MD5 et $ 4 $ SHA1. Il est codé en dur car il ne fait que coder la façon dont le hachage a été généré pour une comparaison future.

+0

Merci, je vais gérer à partir d'ici. – polemon

8

C'est juste une signature, donc vous savez ce que vous cherchez est un mot de passe SHA-1; $1$ est utilisé pour MD5, $5$ pour SHA-2-256 et $6$ pour SHA-2-512.

3

C'est une signature vous indiquant le type de hachage est utilisé, que beaucoup est évident.

Maintenant, pourquoi est présent? C'est parce qu'il est utilisé pour les mots de passe unix, vérifiez crypt (Unix):

Si le sel commence par la chaîne chiffre $ $, alors le format modulaire Crypte est utilisé. Le chiffre représente l'algorithme utilisé pour le chiffrement.