Несовместимый ввод пароля между версиями MySQL - PullRequest
2 голосов
/ 11 февраля 2011

Отказ от ответственности

Да, я знаю: не использовать PASSWORD(password) для шифрования паролей .

Не знаю

Моя проблема заключается в том, что

Недавно наши серверы MySQL вышли из строя и не захотелине возвращайся.Затем меня попросили настроить один из наших веб-серверов в качестве сервера MySQL и импортировать на него нашу последнюю резервную копию.Я быстро установил сервер MySQL и импортировал базу данных.Сайт был восстановлен, все были довольны.

Недолго: кажется, что никто не может войти в систему - из того, что я читал в Интернете, похоже, что в результатах PASSWORD('some pass') между версиями MySQL есть различия.

У меня такой вопрос: Кроме принудительного изменения пароля каждого пользователя и отправки ему по электронной почте, есть ли способ разрешить пользователям сохранять свои старые пароли?

Если нет, то пришло время прикусить пулю, поменяйте пароли у всех, но на этот раз используйте SHA1.

1 Ответ

4 голосов
/ 11 февраля 2011

Просто проверьте версию MySQL.Если это> = 4.1, просто используйте функцию OLD_PASSWORD() вместо PASSWORD.(Я не буду останавливаться на злоупотреблениях этими функциями, поскольку вы уже знаете).

Но один из вариантов - позволить им войти в систему с помощью этой старой функции, а затем при успешном обновлении автоматически перейти к чему-то вроде сильного солиSHA1 ... И не используйте хеш-функцию базы данных, так как вам нужно будет передавать пароль в текстовом виде (что не очень хорошая идея) ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...