Хеширование пароля dovecot с помощью mysql 8 SHA2

Ранее (MySQL 5.7) мы использовали эту команду для добавления нового адреса электронной почты в существующую таблицу:

INSERT INTO `servermail`.`virtual_users`
(`id`, `domain_id`, `password` , `email`)
VALUES
('1', '1', ENCRYPT('password', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), '[email protected]'),

затем dovecot смог аутентифицировать пользователей. (дополнительная информация о схеме паролей dovecot)
Теперь шифрование устарело в последних версиях MySQL. (ссылка)

Я хочу переписать эту команду, используя SHA2, но мне это не удалось.

Изменить:
Это может помочь кому-то использовать Как настроить почтовый сервер с помощью Postfix, Dovecot, MySQL и SpamAssassin для настройки почтового сервера с версией 8.0 Mysql.


person mahyard    schedule 19.07.2018    source источник


Ответы (1)


Наконец, я изменил метод по умолчанию, используемый dovecote для аутентификации пользователей, с SHA512-CRYPT на SHA512. Я думаю, что это не менее безопасно, но поддерживается MySQL 8.
После этого я использовал эту команду, чтобы добавить нового пользователя в таблицу.

INSERT INTO `servermail`.`virtual_users`
(`id`, `domain_id`, `password` , `email`)
VALUES
('1', '1', TO_BASE64(UNHEX(SHA2('password', 512))), '[email protected]');

Буду очень признателен, если вы дадите лучший ответ на мой вопрос.

person mahyard    schedule 09.08.2018
comment
Спасибо, что поделились этой проблемой и ответом: это помогло мне. Я следовал тому же руководству @ digitalocean.com/community /tutorials/, и у меня тоже было такое же сообщение об устаревании :) - person Henry van Megen; 02.10.2018
comment
Благодарю вас! я искал это решение! - person Wojtek B; 13.11.2019
comment
ЮВ @wojtek-b . Вы можете проголосовать за вопрос и ответ, если вы нашли их полезными. - person mahyard; 14.11.2019