Перейти к содержанию
Авторизация  
#meow

Хэширование пароля

Рекомендуемые сообщения

#meow

Доброго времени суток пользователи cr-mp.ru
При регистрации аккаунта я использую хэширование пароля, при авторизации мне выдаёт что пароль введён не верно, ошибок никаких нет.

Логин игрока:

[spoiler=Логин]

case DLG_LOG: 
        { 
            if(response) 
            { 
                new checkpass[61]; 
                SHA256_PassHash(inputtext, player_info[playerid][SALT], checkpass, 61); 
                if(!strcmp(player_info[playerid][PASSWORD], checkpass)) 
                { 
                    SCM(playerid, C_RED, "[Ошибка]: {C3C3C3}Пароль введён верно!"); 
                } 
                else 
                { 
                    SCM(playerid, C_RED, "[Ошибка]: {C3C3C3}Пароль введён не верно!"); 
                    ShowLogin(playerid); 
                } 
            } 
            else 
            { 
                SCM(playerid, C_KICK, "Вы отказались от авторизации и были кикнуты, введите /q(uit) чтобы выйти"); 
                SPD(playerid, -1, 0, " ", " ", " ", ""); 
                return Kick(playerid); 
            } 
        }  

 

 

 

Сток с проверкой аккаунта:

[spoiler=Stock]

{
new rows;
cache_get_row_count(rows);
if(rows)
{
cache_get_value_name(0, "password", player_info[playerid][PASSWORD], 61);
cache_get_value_name(0, "salt", player_info[playerid][SALT], 11);
ShowLogin(playerid);
}
else ShowReg(playerid);
}

 

 

Изменено пользователем #moon

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
16Shadows

Функция SHA-256 создаёт хэш длинной в 64 символа.

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
#meow

@16Shadows, этим моя проблема не решается, я уже перепробовал все варианты. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
16Shadows

Ну можете ещё попробовать выполнять хэширование не в моде, а в SQL-запросе. В mysql есть функция SHA2(str, hash_lenght). В Вашем случае можете использовать запрос вроде

SELECT * FROM `таблица` WHERE `имя`='Имя' AND `password` = SHA2('пароль',256);

И при создании аккаунта использовать

INSERT INTO `таблица` ('password',..) VALUES (SHA2('пароль',256),...)
  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
#meow

@16Shadows, проблему решил, спасибо за помощь.

Не дописал :3

if(!strcmp(player_info[playerid][PASSWORD], checkpass, false, 64) == 0) 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.