2013-06-11 5 views
0

У меня немного тяжелое положение. Моя база данных mysql 4.1.0 должна быть обновлена ​​(1 и 1), но, похоже, приложение использует PASSWORD() для хеширования. При обновлении mysql 5 PASSWORD() дает совершенно другой результат, поэтому пароли не могут быть правильно прочитаны и проверены.Хеширование пароля MYSQL 4 -> MYSQL 5

OLD_PASSWORD(), похоже, не шифрует/дешифрует версию 4.1.0, а скорее еще более раннюю версию 4.0.

Что я могу сделать?

+0

нашел вопрос, который кажется очень актуальным для вас здесь: http://stackoverflow.com/questions/1892607/mysql-password-hashing-method-old-vs-new/и всегда требуется, чтобы ваши пользователи сбросили свой пароль для новой системы – Joe

ответ

0

«Для целей совместимости, переменная система old_passwords была добавлена, чтобы позволить администраторам баз данных и приложений контроля над хэширования методом. Old_passwords по умолчанию значение 0 причин хеширования использовать метод 4.1 (41-байтовое хэш значения), но установка old_passwords = 1 вызывает хэширования использовать предварительный 4.1 метод. в этом случае, ПАРОЛЬ() производит значения 16 байт и эквивалентно OLD_PASSWORD()»

Я предлагаю заставлять всех создавать новый пароль, проверенный по электронной почте и случайным ключом, а затем сохранять новые пароли с помощью хорошего метода (используйте что-то вроде PHPass или, по крайней мере, bcrypt с солью).

+0

OLD_PASSWORD() работал! – jesmaestro

Смежные вопросы