md5 шифрование qwerty - ошибка azerty - PullRequest
0 голосов
/ 16 сентября 2011

Для моей системы php-login в сочетании с базой данных MySQL я использую md5-шифрование для преобразования паролей, когда пользователь регистрируется самостоятельно.На Windows-хосте все работало нормально, но теперь я сменил хост на Linux.Теперь, когда я регистрирую пример пользователя с паролем "azerty", я не мог войти ... Когда я пытаюсь войти с "qwerty" в качестве пароля, это работает.Таким образом, это похоже на то, что функция md5 читает мою клавиатуру как qwerty-клавиатуру, а не как azerty ...

Что я могу сделать, чтобы решить эту проблему?1007 *

В скрипте регистрации я делаю это:

$password = md5($password);

, а затем сохраняю $password в моей базе данных.

Логинскрипт проверяет:

if ($username == $dbusername && md5($password) == $dbpassword)

1 Ответ

1 голос
/ 16 сентября 2011

Не имеет значения, что вы сменили хост. Если вы можете войти в систему с помощью & ldquo; querty & rdquo; тогда вы должны были непреднамеренно зарегистрироваться с помощью & ldquo; querty & rdquo;

Когда вы тестируете систему, используйте обычный <input type="text">, чтобы вы могли увидеть то, что вы печатаете. Переключите его <input type="password">, когда закончите тестирование. Также добавьте & ldquo; подтвердить пароль & rdquo; поле, чтобы вы могли убедиться, что пользователь случайно не набрал неверный пароль.

Учебник для начинающих по безопасному паролю

Добавьте в свою таблицу пользователей поле с именем "salt"

В скрипте регистрации сделать это:

$salt = time();
$code = hash('sha256', $password . $salt);

Сохраните $code и $salt в таблице пользователей.

В логинскрипте отметьте это:

if ($username === $dbusername && hash('sha256', $password . $dbsalt) === $dbpassword)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...