3

/etc/shadow に表示されるパスワード文字列の作成を模倣しようとしています。

これは私がこれまでに得たものですが、同じパスワードと同じソルトを使用すると、暗号化されたパスワードが一致しません。

クリプトの標準は 50​​00 ラウンドなので、それも使用しましたが、どこで間違いを犯したのか正確にはわかりません。

私はこれを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";
4

2 に答える 2

2

crypt アルゴリズムには 5,000 回再ハッシュするだけではありません。

于 2010-09-24T11:32:45.377 に答える
1
perl -e 'print crypt("qwerty", "\$6\$somesalt\$")'
于 2011-12-28T07:39:16.213 に答える