Пароль MYSQL ENCRYPT, но как сделать DECRYPT

Я использую этот учебник, где я использую функцию mysql ENCRYPT.

http://www.pixelinx.com/2010/10/creating-a-mail-server-on-ubuntu-using-postfix-courier-ssltls-spamassassin-clamav-and-amavis/

но теперь у меня проблема с расшифровкой его в mysql или php. Я хочу сравнить, если введенный пароль совпадает с зашифрованным.

Как это можно сравнить? Mysql должен быть включен с помощью функции ENCRYPT!

Я ищу, но я не могу найти ничего, как расшифровать функцию ENCRYPT mysql …

ENCRYPT использует односторонний алгоритм хеширования, не существует DECRYPT . Это смысл шифрования паролей: у хакера не должно быть возможности видеть прозрачные текстовые пароли.

Когда вам нужно сравнить пароль в db с введенным пользователем, используйте такой запрос (используя подготовленные запросы)

 SELECT * FROM `user` WHERE `name` = 'hek2mgl` AND `password` = ENCRYPT('user_input', `password`) 

Функция ENCRYPT выведет «соленую» строку с префиксом самой соли, поэтому при подаче обратно зашифрованный пароль будет повторно подаваться исходная соль.

Вы не можете расшифровать пароль – он зашифрован с односторонним шифрованием.

Вам нужно зашифровать введенный пароль и сравнить результат с сохраненным зашифрованным паролем.

вам не нужно DECRYPT пароль. Чтобы проверить, предоставил ли пользователь правильный пароль, просто введите RE-ENCRYPT пароль, указанный пользователем, и проверьте, совпадает ли он с тем, который хранится в вашей базе данных.

Более того, простая хэш-функция будет достаточной (избегайте MD5 и используйте соль, чтобы предотвратить атаки словаря или радуги)!