我想使用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支持这个)?
感谢您的帮助!
答案 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加密函数来执行您想要的操作。