我用 PHP 编写了一个外部身份验证,它适用于 99% 的所有用户。但是,身份验证不适用于其他 1%,这在绝对数字上是相当多的。我已经写了 IPB,但他们无法帮助我。
我发现原因是我尝试重建 md5 哈希的方式。请再次注意,我使用的方式与 IPB 推荐的完全相同(https://www.invisionpower.com/support/guides/_/advanced-and-developers/miscellaneous/passwords-in-ipboard-r130)。以下代码示例显示了一个示例,其中创建的 md5 与数据库中的 md5 不同。不过,在论坛上的正常登录可以使用此密码。
<?php
$md5 = 'e69618bbe9850fbaf633014f84b8f040';
$salt = '}i3#W';
$plainpass = 'Wv&Txq,LYD-su_6';
$saltedPassword = md5( md5($salt) . md5($plainpass) );
echo "Desired result: $md5 , actual result: $saltedPassword";
?>
我怎样才能达到我想要的 md5?我想这与用户的密码或用户的盐有关。因此它适用于所有用户的 99%,但不适用于本示例和其他用户。