4

重複の可能性:
PHP でパスワードをハッシュするために bcrypt をどのように使用しますか?

PHPを使用してAPIを開発しています。移行したい以前のバージョンの API は、Rails 3 を使用してビルドされていました。

1つだけ問題があります。ユーザーの保存されたパスワードは、以下の手法で暗号化されています。

BCrypt::Engine.hash_secret(password, user.password_salt);

ユーザーが古いパスワードを引き続き使用できるように、PHP (Codeigniter) で同じことを行うにはどうすればよいですか?

すべての助けに感謝します!

4

2 に答える 2

1

フグアルゴリズムでcrypt関数を使用できると思います:http://php.net/manual/en/function.crypt.php

別のオプションは、mcrypt を使用することです: http://www.php.net/manual/en/ref.mcrypt.php

編集:例

これが私がすることです:

$hashedPassword = crypt('password', '$2a$11$abcd');

次のように crypt を使用します。

hash = crypt(password, salt);

$hashedPassword にハッシュが含まれるようになりました。

基本的にフグのアルゴリズムを使用するには、salt を次の形式にする必要があります: $2a$[2 桁のコスト パラメータ]$[22 桁の英数字の文字列]

サーバーにフグがあるかどうかを確認するには:

if (CRYPT_BLOWFISH == 1) {
    echo 'Blowfish:     ' . crypt('rasmuslerdorf', '$2a$07$usesomesillystringforsalt$') . "\n";
}
于 2011-08-14T09:59:56.010 に答える
1

それがどのように行われたかはわかりませんが、Tank Authのソースを見てください。bcrypt を使用しています。組み込みライブラリがシステムに存在する場合はそれを使用し、必要に応じて含まれているバージョンにフォールバックするのは賢明だと思います。

于 2011-08-14T10:39:55.543 に答える