首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >外部认证IPB论坛

外部认证IPB论坛
EN

Stack Overflow用户
提问于 2015-08-20 09:46:28
回答 1查看 816关注 0票数 1

我用PHP编写了外部身份验证,它适用于99%的用户。然而,其他1%的认证不起作用,这在绝对数字上是相当多的。我已经写过IPB了,但是他们帮不了我。

我发现原因在于我试图重建md5哈希的方式。请再次注意,我正在使用完全相同的方式,建议的IPB ( /advanced-and-developers/miscellaneous/passwords-in-ipboard-r130 )。下面的代码示例演示了创建的md5与数据库中的md5不同的示例。在论坛的正常登录使用此密码,不过。

代码语言:javascript
复制
<?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?我想这与用户的密码或用户的salt有关。因此,它适用于99%的所有用户,但不适用于此示例和其他用户。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-29 16:16:42

随着IPB4的发布,他们将所有旧密码更新为河豚加密。然而,只有当用户登录到论坛套件时才会发生这种情况。在此之前,旧的密码加密将保持不变。因此,实际上,您必须检查它是一个md5盐渍密码,还是密码是用河豚加密的(见下文)。

在IPB4发布时,密码加密从盐渍MD5更改为Blowfish:

代码语言:javascript
复制
/* $password is the raw password and $salt is the salt returned from fetchSalt */
crypt( $password, '$2a$13$' . $salt );

$2a$13$是指盐前缀和不应更改的预先确定的成本因素。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32114918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档