外部认证 IPB 论坛
External Authentication IPB Forum
我在 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% 的所有用户,但不适用于此示例和其他用户。
随着 IPB4 版本的发布,他们将所有旧密码更新为河豚加密。然而,这只会在用户登录论坛套件后发生。在此之前,旧密码加密将保留。所以实际上你必须检查它是否是 md5 加盐密码或者密码是否用河豚加密(见下文)。
自 IPB4 发布以来,密码加密已从 salted MD5 更改为 Blowfish:
/* $password is the raw password and $salt is the salt returned from fetchSalt */
crypt( $password, 'a$' . $salt );
$2a$13$指的是salt前缀和一个预定的成本系数,不应该被改变。
我在 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% 的所有用户,但不适用于此示例和其他用户。
随着 IPB4 版本的发布,他们将所有旧密码更新为河豚加密。然而,这只会在用户登录论坛套件后发生。在此之前,旧密码加密将保留。所以实际上你必须检查它是否是 md5 加盐密码或者密码是否用河豚加密(见下文)。
自 IPB4 发布以来,密码加密已从 salted MD5 更改为 Blowfish:
/* $password is the raw password and $salt is the salt returned from fetchSalt */
crypt( $password, 'a$' . $salt );
$2a$13$指的是salt前缀和一个预定的成本系数,不应该被改变。