使用MySQL 8 SHA2进行dovecot密码哈希处理

时间:2018-07-19 10:53:25

标签: mysql sql hash sha2 mysql-8.0

以前(MySQL 5.7),我们使用此命令将新的电子邮件地址添加到现有表中:

INSERT INTO `servermail`.`virtual_users`
(`id`, `domain_id`, `password` , `email`)
VALUES
('1', '1', ENCRYPT('password', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), 'user@example.com'),

然后dovecot能够对用户进行身份验证。 (关于dovecot密码方案的more information
现在,在最新版本的MySQL中不推荐使用Encrypt。 (link

我想使用SHA2重写该命令,但没有成功。

1 个答案:

答案 0 :(得分:2)

最后,我将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))), 'user@example.com');

如果您对我的问题有更好的回答,我们将不胜感激。