安全なパスワード ストレージ: SHA1 vs md5 vs SHA256 vs bcrypt
安全なログイン システムを設計する場合、ハッシュ アルゴリズムの選択が重要です。従来のオプションである SHA1、md5、および SHA256 には既知の脆弱性があります。ソルトはこれらのリスクを軽減できますが、より堅牢な代替手段を検討することが重要です。
bcrypt: 好ましい選択
「PHP に使用するハッシュ アルゴリズムはどれか」に対する答えログイン?"明確です: bcrypt。 SHA1、md5、SHA256 とは異なり、bcrypt は速度ではなくセキュリティを重視して設計されています。ブルート フォース攻撃を阻止するために、複雑なラウンドとソルトを使用した低速のハッシュ プロセスを使用します。
PHP 5.5 実装
最新バージョンの PHP (5.5 ) は、ネイティブ bcrypt サポートを提供します。 passwd_hash() 関数経由:
<code class="php">// Creating a hash $hash = password_hash($password, PASSWORD_DEFAULT, ['cost' => 12]); // Verifying the password against the stored hash if (password_verify($password, $hash)) { // Success! Log the user in here. }</code>
古い PHP バージョン
PHP の古いバージョンの場合、password_compat ライブラリを使用して bcrypt を実装できます。
<code class="php">// Creating a hash $hash = password_compat_hash($password, PASSWORD_BCRYPT); // Verifying the password against the stored hash if (password_compat_verify($password, $hash)) { // Success! Log the user in here. }</code>
注意
bcrypt には 2 つの重要な注意事項があります:
独自の回避策を作成する代わりに、ZendCrypt や PasswordLock などの安全なライブラリを使用してください。
結論
PHP でパスワードを安全に保存するには、bcrypt を使用します。パスワード クラッキングに対する比類のない保護を提供し、ログイン システムの整合性を確保します。
以上がPHP での安全なパスワード保管にはどのハッシュ アルゴリズムが最適ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。