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