以前(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重写该命令,但没有成功。
答案 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');
如果您对我的问题有更好的回答,我们将不胜感激。