1

私はBjyAuthorizeでZfcUserを使用していますが、すべて正常に動作します。私が取り組んでいるプロジェクトでは、MySQL関数「password」で暗号化されたユーザーアカウントとパスワードを含む古いデータベースがあります。私の質問は、すべてのユーザーに情報を送信せずに、パスワードをZfcUserパスワードタイプに再ハッシュできるかどうかです。私の目標は、古いユーザーが古いパスワードを使用して新しいシステムにログインし、スクリプトでこのパスワードをZfcUser標準に変換することです。

4

1 に答える 1

2

わかりました、私は解決策を見つけました、最初に私はphpでMySQLパスワード関数を見つけました:

function mysql_password_hash($input, $hex = true)
{
   $sha1_stage1 = sha1($input, true);
   $output = sha1($sha1_stage1, !$hex);
   return strtoupper('*'.$output);
}

次に、ZfcUser \ Authentication \ Adapter \ Db.phpに$bcrypt = new Bcrypt();、次の2行を追加しました。

if(mysql_password_hash($credential) === $userObject->getPassword())
    $this->updateUserPasswordHash($userObject, $credential, $bcrypt);  

そして今、ログイン中に古いMySQLパスワードが新しいBcryptパスワードに再ハッシュされます。多分それは誰かを助けるでしょう。

于 2013-01-02T16:18:06.763 に答える