ベストソリューション: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経由でインストールすることもオプションです。
使い方(あなたがpassword_compatで行っていると仮定):
パスワードを作成するには:
$hash = password_hash($password, PASSWORD_BCRYPT);
をパスワードを確認するには:
if (password_verify($password, $hash)) {
/* Valid */
} else {
/* Invalid */
}
そして、それは基本的にあなたのすべてです知っておく必要があります。図書館では、パスワードの塩漬けなど、あなたのための他のすべての詳細を扱います。
[EDIT]あなたは、アルゴリズム「コスト」を変更する必要がある場合は、あなたのコメントのとおり、このように、それを指定するpassword_hash()
呼び出しに追加するパラメータを追加します。
password_hash($password, PASSWORD_BCRYPT, array("cost" => 11));
完全なドキュメントが提供されています私は上記のリンク先のダウンロードページにあります。
password_compatライブラリを使用することについての本当に良い点は、PHP 5.5に標準で組み込まれているのと同じAPIと機能を持つように特別に設計されていることです。したがって、PHP 5.3または5.4を使用しているときにpassword_compatを使用すると、PHP 5.5に移行する際に、システムに新しい組み込みパスワード機能を使用するための正しいコードが既に用意されています。唯一の違いは、ライブラリをinclude
にする必要がないことです。あなたがPHP 5.5に更新しようとしている場合
「これらは互換性がありますか、または異なるハッシュが生成されますか?」なぜそれらをロードして試してみませんか? – nickb
ベストソリューション:PHP 5.5に組み込まれているパスワードライブラリを使用する必要があります。彼らはPHP 5.3と5.4用の下位互換性のあるバージョンをリリースしました。 [ここ](https://github.com/ircmaxell/password_compat)を参照してください。ただし、5.3.7以上が必要です。 5.3.7より前のbcryptにはセキュリティ上の問題があり、新しいライブラリが動作しないことを意味します。 – Spudley
@nickb:私は実際に '1)'と '2'を試しましたので、より一般的に意味しました。そして、私の上記のポストで言及されているように交換可能であるようです。 – ProgrammerGirl