私はこのコードをPHPウェブサイトから入手しました。私は塩なしでこの仕事をすることができます。しかし、どのように塩で確認するのですか?それとも、変数に保存して後で使用する必要がありますか?確認する次の手順に進む方法がわからないハッシュを作る方法についてのチュートリアルはたくさんありますが、検証することは別のことです。ありがとうございました。 ()password_hashBcrypt、どのようにランダムな塩で確認しますか?
$options = [
'cost' => 11,
'salt' => mcrypt_create_iv(22, MCRYPT_DEV_URANDOM),
];
echo password_hash("rasmuslerdorf", PASSWORD_BCRYPT, $options)."\n";
// See the password_hash() example to see where this came from.
$hash = '$2y$11$nJp/w0OC41I0m44T9OQKBuWUrQi63PrJuvDc68KI6oDBdnZK01kiW ';
if (password_verify('rasmuslerdorf', $hash)) {
echo 'Password is valid!';
} else {
echo 'Invalid password.';
}
私が混乱していると思うのは、塩を暗号化するのを助けるために塩が追加されていないことと、今は無作為にインクルードされています。データベース? – DDJ
たとえば、password_hash()関数がこのハッシュを生成したとしましょう: '$ 2a $ 10 $ vI8aWBnW3fID.ZQ4/zo1G.q1lRps.9cGLcZEiGDMVr5yUP1KUOYTa'。 '2a'は暗号アルゴリズム(この場合はBCRYPT)を識別し、' 10'はコスト(あなたの場合は11)であり、 'vI8aWBnW3fID.ZQ4/zo1G.q1lRps.9cGLcZEiGDMVr5yUP1KUOYTa'は連結された暗号とテキストです。改変されたBase-64でコードされる。最初の22文字は、塩の16バイトの値にデコードされます。より良い説明については、この[回答](http://stackoverflow.com/questions/6832445/how-can-bcrypt-have-built-in-salts?rq=1)をチェックしてください:) –