2016-05-08 5 views
0

私はPHPウェブサイトを設計していますが、ユーザーのパスワードを保存するのにsha1を使用しましたが、後で読むとsha1が安全ではありません。 Bcryptしかし、これらの質問 - How do you use bcrypt for hashing..Is Bcrypt used for Hashingはあまりにも複雑です、私は彼らが何を説明するのか分かりません。Bcryptでユーザーパスワードを保存するには

<?php $pass = sha1($_POST["password"]); ?> 

が、それは次のようになります。

または両方よりも優れています。ありがとう

+1

PHPは、[password_hash()](http://www.php.net/manual/en/function.password-hash.php)/ [password_verify()](http: //www.php.net/manual/en/function.password-verify.php)functions –

答えて

3

PHPバージョン5.5以降を使用している場合は、password_hash()メソッドとpassword_verify()メソッドを使用できます。

例:

$hash = password_hash("mypassword", PASSWORD_BCRYPT); 

と確認するために:

if (password_verify('mypassword', $hash)) { 
    echo 'Password is valid!'; 
} else { 
    echo 'Invalid password.'; 
} 

塩が内蔵されているので、メソッドの内部でこれが今日のPHPで最良かつ最も固定されています。

+0

'password_hash'を呼び出す際には' PASSWORD_DEFAULT'パラメータを使用することが推奨されています。これは、PHPで実装されている最も安全なアルゴリズムを使用するためですこれは時間の経過とともに変化します。また、bcryptはSHA-1よりはるかに優れていると言いました。なぜなら、bcryptは_slow_アルゴリズムなので、ハッシュへのアクセス権を取得した後にパスワード推測を試みる攻撃者の速度を遅くするからです。 – SilverlightFox

+0

@SilverlightFox低速アルゴリズムは利点ではありません.bcryptはSHA-1よりも優れています。なぜなら、すべての呼び出しが異なる60ビットのハッシュを与えるからです。 –

+0

[ここをクリック](http://dustwell.com/how-to-handle-passwords-bcrypt.html) - re:bcyrpt: 'パスワード用に特別に設計された一連のハッシュ関数があります。安全な「一方向」ハッシュ関数に加えて、それらは遅くなるようにも設計されていました。同じパスワードを持つ2人のユーザーが同じハッシュを持つことを防ぐには塩分が良いですが、できるだけ攻撃者を減速させる必要もあります。 – SilverlightFox

関連する問題