2016-06-26 18 views
0

私はウェブサイトのフレームワーク翻訳を行っています。私はYiiのPHPフレームワークからLaravelに翻訳しています。私は既存のデータベースを持っており、既存のユーザーへのログインアクセスを新しいWebサイトに提供する必要があります。問題は現在、Laravelを使用しています.Laravelは、以前のフレームワークのハッシュ値を認識しません。すなわち、Yiiフレームワークの何らかの方法によってデータベースに格納された値がハッシュされる。これを解決する方法はありますか?私はLaravelでAuth :: attempt()メソッドを使用しています。ハッシュされたパスワードの復号化

+0

Yiiは同じbcryptアルゴリズムを使用しているようです。 'Auth :: attempt'をどのように使っているかを教えてください。 – ceejayoz

+0

一時的な列へのデータの転送 - 認証プロセスを変更して、古い暗号化方法を使用してその列をチェックし、すべてのユーザーをゆっくりと変換します。 –

答えて

2

平凡でシンプルではありません...

ハッシングは暗号化ではありません。ハッシュは片方向ですが、ファイルのサイズがハッシュ値の出力よりも大きいので、大きなファイルのmd5またはshasumを取ることで、これを証明できます。

これはユーザーのセキュリティを損なうため、パスワードリストを使用して虹のテーブルを試すことができます。

あなたはおそらく、Yiiの認証モジュールをLaravelにマッシュアップする方法や、中間者の認証ビットを使用する方法を見つけ出す必要があります。

1

Yiiフレームワークは暗号化機能を使用してパスワードハッシュを生成し、documentationに従って、BCryptハッシュを生成します。ハッシュを見ることでこれを簡単に確認できます.BCryptハッシュは$2yで始まります。

Laravelは実際にハッシュでパスワードを確認できるはずですが、Laravel自体に統合されたメソッドが見つからない場合は、必ずpassword_verify()関数を使用してハッシュをチェックしてください。

+0

ハッシュ値の形式はsha256:1000://///////////です。 password_verify()を使用し、ハッシュ値とパスワードが一致しない単純なコードを使用しました。 –

+0

@HamzaNasim - これはパスワードをハッシュする標準的な方法ではなく、キーストレッチを使用するsha256のようです。このようなパスワード/ハッシュペアの例を教えてください。あなたのアプリケーションにハッシュを生成するいくつかのカスタムコードがありますか? – martinstoeckli

関連する問題