Pourquoi 'mkpasswd -m sha-512' produit un résultat différent à chaque fois qu'il est appelé?

11

J'utilise cette fonction pour créer un mot de passe dans le fichier shadow

$ mkpasswd -m sha-512 password
$6$o50n4EfNOBzfs$K5l5AcOI5e0I9n2df0LmR11OLSPKSVM6AGBOnWVfDDfMubb46MrAj0zehdLNEoYzD2fj5q4XUdDwexj/dWLHy/
$ mkpasswd -m sha-512 password
$6$ADmDOhDpW$gsYQuiKPpV1ewaUpRq2VGAvrcocffLQ8XGF94e6LNLZfKIjy6Ku.cZoR/5exeCi1ESjPB9TRM6HxCiY5BCNCV0
$ mkpasswd -m sha-512 password
$6$Efj1agaI$HGkny3q1OTYT4KREh18gueHJae/3Bvil0iOEhfXj8bD.qy9Lg2UIQJMuBcq0XtG3xzueK.7cp0GfKr7tEo5YI/
$ mkpasswd -m sha-512 password
$6$zdVPlCPai4Y$x3CBvlP99xZXZcr4PTiE..YLpZx39h5OHDxqazd9wFLImPuwsXF0M6KmqLzlCCrnQhI2lmEPdCzfmHA/fDiOz.

Je me demande comment fonctionne la valeur de sortie comme mot de passe

Anthony Kong
la source
2
La sortie de la commande est en fait à la fois un sel (aléatoire) et le hachage du mot de passe + sel. Le sel étant aléatoire, la sortie sera toujours différente.
Lire Comment hacher en toute sécurité les mots de passe?
Gilles 'SO- arrête d'être méchant'

Réponses:

20

Si vous consultez la page de manuel avec "man mkpasswd", vous verrez que cette commande accepte également un paramètre facultatif.Si -S, --salt=STRING vous l'omettez, elle utilisera une valeur de sel aléatoire, et donc la valeur du mot de passe crypté sera également différente.

Si vous fournissez le sel,

mkpasswd -m sha-512 password -s "11223344"
$6$11223344$YzaRt.fnidpXmKw.Dl20htfOrJ8X2Yx3V.h5zUlhlN2SdczempQmQcDcMYd6mHiXlaMqyGt200zDwuZiC8ZZw1

vous obtenez toujours le même résultat.

Soit dit en passant, vous pouvez voir la valeur de sel au tout début de la chaîne de sortie: c'est la valeur comprise entre $'s et 8 à 16 caractères.

Ariel
la source