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