Dlaczego „mkpasswd -m sha-512” generuje inny wynik przy każdym wywołaniu?

11

Korzystam z tej funkcji, aby utworzyć hasło w pliku cienia

$ 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.

Zastanawiam się, jak wartość wyjściowa działa jako hasło

Anthony Kong
źródło
2
Dane wyjściowe polecenia to tak naprawdę zarówno sól (losowa), jak i skrót hasła + sól. Ponieważ sól jest losowa, wydajność zawsze będzie inna.
Przeczytaj Jak bezpiecznie hashować hasła?
Gilles „SO- przestań być zły”

Odpowiedzi:

20

Jeśli sprawdzisz stronę podręczną za pomocą „man mkpasswd”, zobaczysz, że to polecenie akceptuje również opcjonalny parametr. -S, --salt=STRING Jeśli go pominiesz, użyje losowej wartości soli, a zatem wartość zaszyfrowanego hasła również będzie inna.

Jeśli podasz sól,

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

zawsze otrzymujesz ten sam wynik.

Nawiasem mówiąc, możesz zobaczyć wartość soli na samym początku łańcucha wyjściowego: jest to wartość od $s do 8 do 16 znaków.

Ariel
źródło