/etc/shadow に表示されるパスワード文字列の作成を模倣しようとしています。
これは私がこれまでに得たものですが、同じパスワードと同じソルトを使用すると、暗号化されたパスワードが一致しません。
クリプトの標準は 5000 ラウンドなので、それも使用しましたが、どこで間違いを犯したのか正確にはわかりません。
私はこれを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";