Как сгенерировать зашифрованную строку пароля, как в / etc / shadow? - PullRequest
3 голосов
/ 24 сентября 2010

Я пытаюсь имитировать создание строк паролей, когда они появляются в /etc/shadow.

Это то, что я получил, но зашифрованные пароли не совпадают, когда яиспользовать тот же пароль и ту же соль.

5000 раундов является стандартным для крипты, поэтому я использовал это, но я не вижу, где именно я допустил ошибку:

IЯ делаю это в Perl, это соответствующая часть:

($pass, $salt) = @ARGV;

unless(defined($salt)) {
    $salt = MIME::Base64::encode(random_bytes(12), '');
}

for $i (1 .. 4999) {
    $pass = Digest::SHA::sha512($salt, $pass);
}

say "";

print '$6$', $salt, '$', Digest::SHA::sha512_base64($salt, $pass), "\$\n";

Ответы [ 2 ]

2 голосов
/ 24 сентября 2010

Алгоритм шифрования включает в себя намного больше, чем просто повторное хеширование 5000 раз:

1 голос
/ 28 декабря 2011
perl -e 'print crypt("qwerty", "\$6\$somesalt\$")'
...