Как хэши пароля сравнены?

Я делал осуществление сегодня, которое включает создание нового пользователя путем ручного редактирования/etc/group;/etc/shadow;/etc/passwd

Теперь, обращаясь к/etc/shadow, я должен был создать хэши пароля. Я использовал этот сценарий жемчуга:

#!/usr/bin/perl -w

use strict;

my $pwd = $ARGV[0]
chomp($pwd)
my $salt = join "", (".", "/", 0..9, "A".."Z", "a".."z")[rand 64, rand 64];
print crypt($pwd, $salt)."\n";

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

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

Мой вопрос: если единственный сценарий получает единый пароль и выводы различные хеши, как это - программа входа в систему, распознает действительный пароль?

1
задан 17 August 2016 в 21:38

1 ответ

Существует соль, используемая в методе склепа. Та же соль всегда производит тот же crypted пароль. Однако соль случайна, и затем кажется, что целый crypted пароль случаен.

существует соль, сохраненная в crypted пароле, и это используется при проверке пароля. Хеширование пароля работает только один путь. Когда проверка соли читается из зашифрованного пароля, и пароль является crypted. Если crypted пароль совпадает с тем в/etc/shadow, пароль в порядке.

Смотрят здесь: https://en.wikipedia.org/wiki/Salt _ (криптография)

0
ответ дан 8 December 2019 в 09:19

Другие вопросы по тегам:

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