我在 Debian Lenny 上设置了一个电子邮件服务器,其中包含 Postfix、Dovecot、SASL 和 MySQL。
目前,我的dovecot-sql.conf文件中的密码方案设置为:CRYPT
default_pass_scheme = CRYPT
我想将方案全局更改为更强大的方案,例如 SSHA 或 MD5-CRYPT,并使用 SSHA 重新散列所有密码。最好的方法是什么?
Dovecot wiki 提到了不遵循 dovecot-sql.conf 中定义的默认方案的密码可以在前面加上“{ssha}password”,但我没有看到任何关于将数据库中已有的所有密码的现有方案更改为新方案的内容。
感谢您的帮助!
答案1
我不完全确定仅靠 dovecot 就能做到这一点。由于现有密码是加密的,您无法简单地将它们转换为其他格式,因为您不知道密码是什么。如果您有密码过期/更改机制,那么您应该能够在那时更新哈希值。如果您使用 PAM 进行身份验证,那么几乎肯定会有某种“重新哈希”模块,在成功将密码与旧哈希值匹配后,它会将密码重新哈希为不同的算法。
请注意,dovecot 中的“crypt”方案使用crypt()
支持模块化加密格式,这意味着只要格式正确,它就可以识别几种不同的哈希算法。