Пример, как проверить логин/пароль без авторизации.
Работает для версии 10.0 и младше. В будущих редакциях Битрикса может измениться.
В текущей версии пароль хранится как 8 случайных символов + md5
| Код |
|---|
$login_password_correct = false;
if (
isset( $_REQUEST['login'] ) && strlen( $_REQUEST['password'] ) > 0
&&
isset( $_REQUEST['login'] ) && strlen( $_REQUEST['password'] ) > 0
)
{
$rsUser = CUser::GetByLogin( $_REQUEST['login'] );
if ($arUser = $rsUser->Fetch())
{
if(strlen($arUser["PASSWORD"]) > 32)
{
$salt = substr($arUser["PASSWORD"], 0, strlen($arUser["PASSWORD"]) - 32);
$db_password = substr($arUser["PASSWORD"], -32);
}
else
{
$salt = "";
$db_password = $arUser["PASSWORD"];
}
$user_password = md5($salt.$_REQUEST['password']);
if ( $user_password == $db_password )
{
$login_password_correct = true;
}
}
} |