最善の解決策: PHP 5.5 に組み込まれているパスワード ライブラリを使用する必要があります。彼らはpassword_compatと呼ばれる PHP 5.3 および 5.4 の後方互換バージョンをリリースしました。ただし、5.3.7 以降が必要になることに注意してください。5.3.7 より前の bcrypt にはセキュリティ上の問題があり、新しいライブラリは機能しません。
5.3.7 より前のバージョンを使用している場合、次に最適なオプションは同じ作成者によるPassword Libです。しかし、代わりに PHP をアップグレードすることをお勧めします。
インストール
どちらのライブラリも、ダウンロードしてサイト フォルダにコピーし、メイン ファイルをコードに含めるだけで簡単にインストールできますrequire('password.php');
。
Composer を使用している場合は、Composer 経由でインストールすることもできます。
使用法(password_compat を使用する場合):
パスワードを作成するには:
$hash = password_hash($password, PASSWORD_BCRYPT);
パスワードを確認するには:
if (password_verify($password, $hash)) {
/* Valid */
} else {
/* Invalid */
}
そして、それは基本的にあなたが知る必要があるすべてです. ライブラリは、パスワードのソルティングなど、他のすべての詳細を処理します。
[編集] コメントに従って、アルゴリズムの「コスト」を変更する必要がある場合は、呼び出しに追加のパラメーターを追加して、次のpassword_hash()
ように指定します。
password_hash($password, PASSWORD_BCRYPT, array("cost" => 11));
完全なドキュメントは、上でリンクしたダウンロード ページで入手できます。
password_compat ライブラリを使用することの本当に良い点は、PHP 5.5 で標準として PHP に組み込まれているのと同じ API と機能を持つように特別に設計されていることです。したがって、PHP 5.3 または 5.4 を使用しているときに password_compat を使用している場合、PHP 5.5 に移行するときに、新しい組み込みパスワード関数を使用するための適切なコードがシステムに既に含まれています。include
唯一の違いは、ライブラリが必要ないことです。