Я пытаюсь имитировать создание строк паролей, когда они появляются в /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";