2

crackstation.netからパスワード ハッシュ/ソルティング アルゴリズムを実装しようとしていますが、実装方法がわかりません。

ユーザー登録時にパスワードを保存するのは、パスワードを create_hash() に渡すのと同じくらい簡単なようです。

$password = create_hash($_POST['Password'];

ユーザーのログイン時に検証する方法に従っていません。validate_password($password, $good_hash) は true または false を返し、パラメーターとして $password を受け取るため、2 番目のパラメーター $good_hash を除いては簡単に思えます。このパラメータはどこから来たのですか?

パスワードは使用されるたびにハッシュ値に変換され、ハッシュ値は保存および比較されるものであると理解しています。では、なぜ $password と $good_hash の両方の値を使用するのでしょうか?

機能の概要:

function create_hash($password){
    calls pbkdf2()
}

function validate_password($password, $good_hash){ 
    calls pbkdf2() 
    calls slow_equals() 
}

function slow_equals($a, $b){
}

function pbkdf2($algorithm, $password, $salt, $count, $key_length, $raw_output = false){
}

もちろん、これに対する別のより良い方法も同様に役立ちます。ありがとうございました

4

1 に答える 1

2

good_hashこの時点で DB に格納されており、既知の「適切なハッシュ」です。DB から取得passwordし、同じアルゴリズムでハッシュされたユーザーが送信されたものと比較します。

于 2012-07-11T03:17:27.763 に答える