Некоторое время я задавался вопросом, почему запуск "echo 'helloworld' | openssl passwd -1 -stdin" каждый раз дает разные результаты? Если я добавлю какой-либо из хэшей в мой / etc / shadow, я могу использовать их как свой пароль и логин к моей системе, как это работает?
computer:/ user$ echo 'helloworld' | openssl passwd -1 -stdin
$1$xlm86SKN$vzF1zs3vfjC9zRVI15zFl1
computer:/ user$ echo 'helloworld' | openssl passwd -1 -stdin
$1$/0.20NIp$pd4X9xTZ6sF8ExEGqAXb9/
computer:/ user$ echo 'helloworld' | openssl passwd -1 -stdin
$1$sZ65uxPA$pENwlL.5a.RNVZITN/zNJ1
computer:/ user$ echo 'helloworld' | openssl passwd -1 -stdin
$1$zBFQ0d3Z$SibkYmuJvbmm8O8cNeGMx1
computer:/ user$ echo 'helloworld' | openssl passwd -1 -stdin
$1$PfDyDWER$tWaoTYym8zy38P2ElwoBe/
Я думаю, что поскольку я использую этот хэш, чтобы описать системе, каким должен быть мой пароль, я должен каждый раз получать одни и те же результаты. Почему не я?
Ответы:
У них у всех разная соль . Уникальная соль выбирается каждый раз, так как соли никогда не следует использовать повторно. Использование уникальной соли для каждого пароля делает их устойчивыми к атакам радужных таблиц .
источник
Действительно, если вы добавите соль в командную строку, вы всегда получите один и тот же результат.
источник