Чому 'mkpasswd -m sha-512' дає різні результати кожного разу, коли він називається?


11

Я використовую цю функцію для створення пароля в тіньовому файлі

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

Це змушує мене замислитися, як працює вихідне значення як пароль



2
Вихід команди є насправді як сіль (випадковий), так і хеш пароля + сіль. Оскільки сіль є випадковим, вихід завжди буде різним.

Відповіді:


20

Якщо ви перевірите manpage на сторінці "man mkpasswd", ви побачите, що ця команда також приймає необов'язковий параметр. -S, --salt=STRING Якщо ви її опустите , вона використовуватиме випадкове значення солі, а отже, і зашифроване значення пароля також буде іншим.

Якщо ви надаєте сіль,

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

ви завжди отримуєте однаковий результат.

До речі, значення солі можна побачити на самому початку вихідного рядка: це значення між $'s та 8-16 знаками.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.