私はあなたが何をしようとしているのかはっきりしていません。
考えられる解決策は最後ですが、最初に、パスワードをチェックする方法を説明します。
md5(md5(pass+salt))
元のテキストパスワードがデータベースに保存される方法です。
フォーラムの上部にあるログインフィールドからログインすると、JavaScriptを使用してmd5(password)
、ユーザー名とパスワードがサーバーに送信される前に実行されます。JavaScriptが有効になっていない場合、プレーンテキストのパスワードが投稿されます。
このverify_authentication()
関数は、パスワードを検証するために3つのアプローチを試みます。
if (
$vbulletin->userinfo['password'] != iif($password AND !$md5password, md5(md5($password) . $vbulletin->userinfo['salt']), '') AND
$vbulletin->userinfo['password'] != iif($md5password, md5($md5password . $vbulletin->userinfo['salt']), '') AND
$vbulletin->userinfo['password'] != iif($md5password_utf, md5($md5password_utf . $vbulletin->userinfo['salt']), '')
)
プレーンテキストのパスワード($password
)が送信された場合、それを通過させmd5(md5(pass+salt))
、データベースからのハッシュされたパスワードと比較されます。
$vbulletin->userinfo['password'] != iif($password AND !$md5password, md5(md5($password) . $vbulletin->userinfo['salt']), '')
パスワードがJavaScript($md5password
)によってハッシュされた場合、パスワードは渡さmd5(pass+salt)
れ、データベースからのハッシュされたパスワードと比較されます。
$vbulletin->userinfo['password'] != iif($md5password, md5($md5password . $vbulletin->userinfo['salt']), '')
パスワードがJavaScriptによってハッシュされ、UTFが使用されている場合($md5password_utf
)、パスワードは渡さmd5(pass+salt)
れ、データベースからのハッシュされたパスワードと比較されます。
$vbulletin->userinfo['password'] != iif($md5password_utf, md5($md5password_utf . $vbulletin->userinfo['salt']), '')
特定のユーザー名でパスワードなしでログインできるようにする場合は、login_failure
フックを使用してプラグインを追加してみてください。pluinはユーザー名を確認し、使用している特定のユーザー名と一致する場合は、ログインプロセスを続行できます。プラグインには次のものが含まれます。
if ($vbulletin->GPC['vb_login_username'] == 'your_username')
{
exec_unstrike_user($vbulletin->GPC['vb_login_username']);
process_new_login($vbulletin->GPC['logintype'], $vbulletin->GPC['cookieuser'], $vbulletin->GPC['cssprefs']);
do_login_redirect();
}