1

私は CodeIgniter を使用しており、ユーザーがログインする必要があるサイトのセクションを作成しています。パスワードを MD5 ハッシュとして保存し、暗号化された文字列をソルトで保存することについて読んでいますが、復号化については何もわかりません。

検証のために保存されたときに暗号化されたのと同じ方法でパスワードの試行を暗号化することは効率的/安全ですか?

これは、php アプリケーションにパスワードを保存する方法、または CodeIgniter フレームワークを使用する方法として推奨されていますか?

4

6 に答える 6

3

すでに「すぐに使用できる」認証ライブラリがあります(箱から出して言うかもしれません)。これに似た別の質問へのリンクがあり ます http://www.stackoverflow.com/questions/346980/how-should- i-choose-an-authentication-library-for-codeigniter
note私は「グループ」でのTank Authが好きです。

于 2013-05-31T09:59:08.963 に答える
1

CodeIgniter は「Tank Auth」と呼ばれるライブラリを使用します: http://konyukhov.com/soft/tank_auth/ これにはクラス「PasswordHash.php」が含まれます: http://bit.ly/1gahwtT

コード例:

require "PasswordHash.php";

define("phpass_hash_portable",TRUE);
define("phpass_hash_strength",8);

$hasher = new PasswordHash(phpass_hash_strength,phpass_hash_portable);
if ($hasher->CheckPassword($password_to_check, $original_encoded_password)) {
    echo "password correct";
} else {
    echo "password incorrect";
}
于 2014-02-13T10:12:30.137 に答える
0

あなたの回答に対する2つのコメントは、より多くを追加するための良い回答へのリンクを示しています。crypt は mcrypt とは違うことに注意してください。crypt の例は laravel3 Hash classにあります。または、OpenBSD スタイルの Blowfish ベースの bcrypt を利用するライブラリであるphp passを使用することもできます。

cryptic に感謝します。ircmaxell にはハッシュ ライブラリもあります。こちらで確認してください。

于 2013-05-31T03:21:16.513 に答える
-2

ほとんどの場合、パスワードを元の文字列に復元する必要がないため、パスワードはハッシュ形式で保存されます。md5 関数は、2 つのハッシュを比較するだけで検証できる一意の 32 文字の長さの文字列を生成します。あなたの質問に答えるには:

もちろん、アルゴリズム「sha512」とsaltを使用した関数。

于 2013-05-30T22:42:55.023 に答える