21

PASSWORD_DEFAULT と PASSWORD_BCRYPT の違いは何ですか? どちらも Blowfish 暗号化アルゴリズムを使用していますか? アルゴリズムのコストとは何ですか? PHP で password_hash を設定する方法は、60 ではなく 255 ハッシュ長を生成しますか?

4

3 に答える 3

33

現在サポートされているアルゴリズムは のみ (CRYPT_BLWFISH を使用) であるため、現在のところ と の間にPASSWORD_BCRYPT違いはありません。の目的は、将来追加のアルゴリズムを含めることができるようにすることです。その場合、サポートされている最強のハッシュ アルゴリズムを適用するために常に使用されます。PASSWORD_DEFAULTPASSWORD_BCRYPTPASSWORD_DEFAULTPASSWORD_DEFAULT

コストは、実行されるアルゴリズムの反復回数に関連し、計算速度と生成されるハッシュ値に影響します。コストが高いと実行に時間がかかり、ブルート フォース攻撃が遅くなります

于 2014-03-13T23:29:42.520 に答える
4

ドキュメント ごとに、PASSWORD_DEFAULT将来の証拠となるように意図されています

ドキュメントから:

PASSWORD_DEFAULT- bcrypt アルゴリズムを使用します (PHP 5.5.0 以降のデフォルト)。この定数は、より強力な新しいアルゴリズムが PHP に追加されるにつれて、時間の経過とともに変化するように設計されていることに注意してください。そのため、この識別子を使用した結果の長さは、時間の経過とともに変化する可能性があります。したがって、60 文字を超えて拡張できるデータベース列に結果を格納することをお勧めします (255 文字が適切です)。

于 2014-03-13T23:29:13.640 に答える
2

今のところPASSWORD_DEFAULTとの間に違いはありません。ここを参照PASSWORD_BCRYPT

コストは、ハッシュが適用されるラウンド数によって異なります。上のリンク先でも説明されています。ハッシュのセキュリティを強化したい場合は、長さではなくラウンド数を増やすことをお勧めします。

于 2014-03-13T23:35:36.657 に答える