我不清楚你想做什么。
最后是一个可能的解决方案,但首先,这是检查密码的方式。
md5(md5(pass+salt))
是原始文本密码存储在数据库中的方式。
当您通过论坛顶部的登录字段登录时,JavaScript 用于md5(password)
在用户名和密码发布到服务器之前运行。如果未启用 JavaScript,则会发布纯文本密码。
该verify_authentication()
函数尝试了三种验证密码的方法:
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();
}