#meow 64 Опубликовано 27 января, 2019 (изменено) Доброго времени суток пользователи 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); } Изменено 27 января, 2019 пользователем #moon Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
16Shadows 101 Опубликовано 27 января, 2019 Функция SHA-256 создаёт хэш длинной в 64 символа. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
#meow 64 Опубликовано 27 января, 2019 @16Shadows, этим моя проблема не решается, я уже перепробовал все варианты. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
16Shadows 101 Опубликовано 27 января, 2019 Ну можете ещё попробовать выполнять хэширование не в моде, а в SQL-запросе. В mysql есть функция SHA2(str, hash_lenght). В Вашем случае можете использовать запрос вроде SELECT * FROM `таблица` WHERE `имя`='Имя' AND `password` = SHA2('пароль',256); И при создании аккаунта использовать INSERT INTO `таблица` ('password',..) VALUES (SHA2('пароль',256),...) 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
#meow 64 Опубликовано 27 января, 2019 @16Shadows, проблему решил, спасибо за помощь. Не дописал :3 if(!strcmp(player_info[playerid][PASSWORD], checkpass, false, 64) == 0) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты