0

我有自己的小网站并使用 sha1 加密,现在我尝试将其连接到 SMF 论坛,但 sha1 代码不一样?

我的代码

$password = "thisisatestpass";
$encrypted_password=sha1($password);
echo $encrypted_password; //03d858ce5f3b29b153b0392f196cff6f6e8684d0

SMF: 78481983d348ce4fbfabaccbb59af8ea95471f0c

4

5 回答 5

1

根据这个线程,SMF 在通过 sha1 之前使用小写用户名对密码进行加盐处理。

尝试sha1(strtolower($your_username) . $password);

于 2012-08-19T15:49:46.773 回答
1

您需要找到使用的盐,然后尝试使用

sha1($the_salt.$password);

您应该尝试使用 phpMyAdmin 在 SMF 使用的表中查找散列。而且根据我在 smf 支持论坛上看到的内容,使用与钩子的替代集成必须更加健壮(请记住以前版本中对散列所做的更改)

于 2012-08-19T16:16:00.730 回答
0

据我所知,SMF 使用盐作为哈希值。因此,尝试在数据库中查找盐。

于 2012-08-19T15:48:55.760 回答
0

查看 SMF 2.0.8 的源代码(Profile-Modify.php)可以看到密码生成如下:

// Go then.
$passwd = sha1(strtolower($cur_profile['member_name']) . un_htmlspecialchars($_POST['passwrd1']));

请注意,您需要 SMF un_htmlspecialchars()函数才能获得 100% 正确的结果。

于 2014-07-25T08:45:25.307 回答
-1

我明白了,您不需要 SALT 来执行此操作,您只需要用户名和密码即可。

PHP 代码如下所示:

$username = "name";
$password = "pass";

$login = sha1($username.$password);

我要求这个,我只需要一些时间来尝试很多方法,然后这个就奏效了。谢谢大家:)

于 2012-09-08T15:49:15.460 回答