5

このハッシュ関数を使用しようとしていますが、ページをリロードするたびに、最初の 7 文字を除いて別の文字列が返されます。

<?php  
require("lib/password.php")  
$pass = $_POST['input_password'];
echo 'Received: '.$pass.'<br />';
$passwordHash = 'default';   
$passwordHash = password_hash(trim($pass), PASSWORD_DEFAULT, ["cost" => 11]);   
echo 'Password hash is '.$passwordHash;  

たとえば、aaa を渡してハッシュを取得します

$2y$11$1Ll4twbmFNWhVxBOCeDWhOtZ4WchW.GYXK3LSH9BnW6AhXf45soWq
$2y$11$H0dmOkkq3rSgggDbGueRPusODmkZrrFqG7I/R1B0tFTQEYGHB0iZi
$2y$11$z0pFOoFsD5Bk0sx2TiT3kOd2awAwDBQAsQaxlDq11kNH.ldaS1qw2

Windows 7 64 ビットおよび Firefox 17 で WAMP Server 2.2 を使用しています。

4

2 に答える 2

8

そのハッシュ アルゴリズムは毎回ランダムなソルトを使用します。同じ入力でも毎回異なるように設計されています。

パスワードを確認するにはpassword_verify、そのライブラリに含まれている関数を使用します。

注:$2y$11$先頭の は、ハッシュの生成に使用されるアルゴリズムとコストを指定します。

于 2013-01-10T19:44:50.097 に答える
0

正解です。この値には、レインボー テーブル攻撃を阻止するためのランダムソルトが含まれています。

于 2013-01-10T19:44:57.867 に答える