Я не понимаю, что вы пытаетесь сделать.
Возможное решение в конце, но во-первых, вот как проверяется пароль.
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
. Ваш плейн мог проверить имя пользователя и, если он соответствует определенному вами, вы можете продолжить процесс регистрации. Плагин будет содержать:
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();
}