0

パスワードをプレーンテキストでデータベースに保存するのは良くないと聞いたので、パスワークを安全に保存する方法を探しています。私はいくつかの調査を行い、実用的な例を持っています。

$cost =10;
$salt =strtr(base64_encode(mcrypt_create_iv(16, MCRYPT_DEV_URANDOM)), '+', '.');
$salt = sprintf("$2a$%02d$",$cost).$salt;
$hash = crypt($password,$salt);

$hash は、データベースに保存される最終的な文字列です。ハッシュ化されたパスワードを取得するには、 //$password = DB からのパス $enteredpass = ログインからのパス $hash = crypt($password,$enterdPass ); を使用します。if($enterdPass == $hash) // 入力されたパスは正しい

私は、これまでで最高のハッシュ化を探しているわけではありません

4

1 に答える 1

3

PHP には、バージョン 5.5 以降の優れたパスワード ハッシュ API があり、5.3.7 以降のバージョンで使用できるようにバックポートされています。

ドキュメントと使用できるライブラリを見てください。

現在のソリューションと比較して優れた機能は、後でより良いアルゴリズムまたは改善された設定を使用することにした場合に、パスワード ハッシュのアップグレードを許可することです。

例:

$store_this = password_hash("rasmuslerdorf", PASSWORD_DEFAULT);

$true === password_verify('rasmuslerdorf', $store_this);
于 2013-09-14T01:17:23.067 に答える