4

bcrypt-ruby で暗号化されたパスワード フィールドを含む数千のレコードを持つユーザー認証テーブルがあります。アプリを PHP / Yii に移植したので、このフィールドを認証に使用する必要があります。

この Ruby で作成されたフィールドを PHP で取得する方法はありますか?

検証

「取得」とは、Rails アプリで bcrypt-ruby によって作成されたパスワード フィールドを持つ DB テーブルを解釈するために、PHP/Yii アプリを使用してユーザー ログインを認証する必要があることを意味します。

4

2 に答える 2

4

これで問題が解決すると思います:

$database_record = "something";   // grab from database
$user_input = 'unicorns';         // take real one from post data
$password = crypt($user_input, '$2a$10$usesomesillystringforsalt$');
// key piece above is the second number, that is the 'work' factor

if (crypt($user_input, $database_record) == $password) {
   echo "Password verified!";
}
else {
    echo 'failed!'; }

BCrypt::Password.create(desired_pass)これは、Rubyを使用してそれらを保存し、 BCrypt::Password.new(database_entry) == form_input.

さらに、データベースに新しいパスワード (つまり、新しいユーザー) を作成するには、次の結果を保存します。

$password = crypt($user_input, '$2a$10$usesomesillystringforsalt$');

最後に、常に正しい原価係数を使用していることを確認してください。コスト要因が異なる同じパスワードは同等ではありません。bcrypt-ruby のデフォルトのコスト係数は 10 (現在のバージョン、3.0.1) です。

于 2012-02-17T05:21:27.343 に答える
0

PHP.netで crypt 関数を確認する必要があります。

ここで、Ruby で bcrypt を正しく使用していれば、必要なことができるはずです。

于 2012-02-17T01:45:19.223 に答える