私は次のようにクリプトを使用しています:
$pass = crypt($pass, 'd4');
mysql テーブルに対するパスワードの挿入と検証の両方に使用できます。問題は、パスワードが類似している場合、同様の結果が生成されることです。異なるパスワードに対して異なる結果を保証するアルゴリズムはありますか?
古いDESベースのモード()を使用しないcrypt()
限り、使用しても問題ありません。これを使用する唯一の正当な理由は、そのようなパスワードハッシュを使用するレガシーソフトウェアとの相互運用性のためです。CRYPT_STD_DES
代わりに、、またはモードを使用しCRYPT_BLOWFISH
てCRYPT_SHA256
くださいCRYPT_SHA512
。これらは、任意の長いパスフレーズを受け入れ、長いソルトを使用し、複数の反復によるキー強化をサポートする最新のパスワードハッシュアルゴリズムです。
残念ながら、PHPcrypt()
インターフェースはやや扱いにくいです。必要なアルゴリズムを明示的に選択する唯一の方法は、正しくフォーマットされた$salt
パラメーターを指定することです。つまり、実際のソルトを自分で生成する必要もあります。ただし、独自のパスワードハッシュコードをロールするよりも、おそらくそれでも簡単で安全です。
あなたは塩を加えることができます。通常、パスワードを保存している場合は、パスワードを暗号化するのではなく、ハッシュする必要があります。これについては、Google などで検索すると、さまざまな情報が得られます。