Почему пароли md5 хэшируют по-разному?

Я немного удивляюсь, почему запуск «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/

Я бы подумал, что, поскольку я использую этот хэш для описания системы, каким должен быть мой пароль, я должен получать одинаковые результаты каждый раз. Почему я не?

22 голоса | спросил Peter 9 J0000006Europe/Moscow 2013, 01:11:09

2 ответа


37

Все они имеют другую соль . Каждый раз выбирается уникальная соль, так как соли никогда не следует использовать повторно. Использование уникальной соли для каждого пароля делает их устойчивыми к атакам радуги .

ответил Michael Hampton 9 J0000006Europe/Moscow 2013, 01:13:40
3

Действительно, если вы предоставляете соль в командной строке, вы всегда получаете тот же результат.

$ echo 'helloworld' | openssl passwd -1 -stdin -salt my-salt
$1$my-salt$S/PsLSioHR8ffN8bpIzsk/
$ echo 'helloworld' | openssl passwd -1 -stdin -salt my-salt
$1$my-salt$S/PsLSioHR8ffN8bpIzsk/
$ echo 'helloworld' | openssl passwd -1 -stdin -salt my-salt
$1$my-salt$S/PsLSioHR8ffN8bpIzsk/
ответил danidemi 28 J0000006Europe/Moscow 2015, 17:24:37

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132