Dovecot + Postfix自己的用户数据库

时间:2015-05-23 18:32:17

标签: mysql postfix-mta dovecot

我想使用Postfix + Dovecot作为电子邮件解决方案。我们已经有一个运行Woltlab刻录板的网站。其中一些用户(支持人员,主持人,开发人员)将获得一个电子邮件地址。

最舒适的方式(作为管理员)是使用刻录板的登录凭据。问题是,我没有检查密码。 Burning Board正在使用双盐渍的bcrypt哈希,我不知道构建一个能够根据哈希检查密码的mysql语句。

您可以在此处查看密码:https://github.com/WoltLab/WCF/blob/master/wcfsetup/install/files/lib/util/PasswordUtil.class.php(“test123”结果:“$ 2a $ 08 $ 15yH0BYHr2XVzdT64dmSQO1yBHOUU.HkB72J1eGQcKRu8FDC5RXMG”)

有没有办法直接在mysql中检查双盐密码哈希值?如果没有,我可以使用PHP脚本来检查用户凭据(我听说SALS支持这个)?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我能够使用WCF提供的实用程序编写一个简单的PHP脚本来验证密码:

namespace wcf\util;
require("PasswordUtil.class.php");

$password = "test123";
$dbHash= "$2a$08$7EMZdBTk1SwHyCQApSGLL.8/rL.zEHpOAJgR3ogfBKW0epSWtXnLS";

$dsHash = PasswordUtil::getDoubleSaltedHash($password, $dbHash);

if (PasswordUtil::secureCompare($dbHash, $dsHash)) {
    echo "Password is valid.\n";
} else {
    echo "Password is invalid.\n";
}

我不相信MySQL为您提供了一个方便的bcrypt功能路由。看起来WCF可能会被迫为您提供不同的密码哈希(尽管这可能需要更改源代码)。在这种情况下,您可以使用MySQL的SHA或AES加密函数来执行您想要的操作。