SHA1、MD5、または SHA256: PHP ログインに最適なのはどれですか?
PHP ログイン システムを実装する場合、最適なハッシュ アルゴリズムを選択するは、保存されたパスワードのセキュリティを確保するために非常に重要です。この記事では、3 つの一般的なオプション、SHA1、MD5、および SHA256 を比較し、最も安全な選択肢である bcrypt を推奨します。
SHA1、MD5、および SHA256: セキュリティの違いはありますか?
これらのアルゴリズムはどれも、本質的に他のアルゴリズムより安全というわけではありません。これらは速度を重視して最適化されているため、特殊なハードウェアを使用するとクラックされやすくなります。
SHA1/256 でのソルトの使用
ソルトの使用が推奨されていますが、 SHA1 と SHA256 の弱点を軽減するには十分ではありません。攻撃者は依然として、ソルト化されたハッシュに対してブルート フォース攻撃またはレインボー テーブル攻撃を適用することができます。
パスワード ハッシュの安全な保存
ソルトを作成するために提供されている関数は不十分です。これは、攻撃を受けやすい設計が不十分な MD5 関数を使用しています。
優れた選択肢: bcrypt
最新の PHP アプリケーションの場合、bcrypt が推奨されるオプションです。これは、本質的にソルティングと反復ハッシュを組み込んだワーク ファクター ベースのハッシュ アルゴリズムであり、クラッキングに対する耐性が高くなります。
PHP 5.5 での bcrypt の実装
PHP 5.5 導入ビルド-in はパスワードのハッシュ化に機能し、デフォルトで bcrypt を使用します。使用方法は次のとおりです:
<code class="php">// Create a hash $hash = password_hash($password, PASSWORD_DEFAULT, ['cost' => 12]); // Verify the password if (password_verify($password, $hash)) { // Success! Log the user in. }</code>
PHP の古いバージョンの場合は、password_compat を使用して API を公開します。
bcrypt の注意事項
これらの警告に対処するには、ZendCrypt や PasswordLock などのサードパーティ ライブラリの使用を検討してください。
TL;DR
PHP ログインには SHA1、MD5、または SHA256 を使用しないでください。代わりに、最大限のセキュリティとクラッキングに対する耐性を得るために bcrypt を選択してください。
以上がSHA1、MD5、または SHA256: PHP ログインにはどのハッシュ アルゴリズムを使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。