FreeDiscuz!'s Archiver

gmjacky 发表于 2008-6-2 16:29

密碼錯誤問題.

由於Discuz! 6.1F採用其他算法來保護密碼,一些需要輸入密碼的插件便無法使用....請問有沒有方法可以解決??

Clwarm 发表于 2008-6-2 17:07

官方 6.1.0 是二次 md5 加密,我想错了,实在抱歉。

详情请见 8楼。

aoer 发表于 2008-6-2 17:55

顶个!

gmjacky 发表于 2008-6-2 18:01

$password = md5($password);
                if ($password == $discuz_pw) {

....
...

如果这样要怎样改??
(2次加密...可否2次解密....:L )

gmjacky 发表于 2008-6-3 16:45

頂!!!!!!!!!

Clwarm 发表于 2008-6-3 20:11

不知道你要二次解密做什么?
php 里 md5 不可逆,一般现在解密 md5 的都是暴力破解。

官方 6.1.0 是二次 md5 加密,我想错了,实在抱歉。

详情请见 8楼。

gmjacky 发表于 2008-6-3 20:25

[quote]原帖由 [i]Clwarm[/i] 于 2008-6-3 20:11 发表 [url=http://freediscuz.net/bbs/redirect.php?goto=findpost&pid=26790&ptid=3736][img]http://freediscuz.net/bbs/images/common/back.gif[/img][/url]
改成
$password = md5(md5($password));

不知道你要二次解密做什么?
php 里 md5 不可逆,一般现在解密 md5 的都是暴力破解。 [/quote]

我再試試看~

沒什么...好奇而已....:$ ..不用試也知道...二次加密後...用網上的方法根本不能取得第一次加密內容...=.=

admin 发表于 2008-6-3 21:50

楼上的解释不太准确。

6.1F 并非采用二次md5加密,而是采用salt加密方式。

也是说

用户的密码 = md5(md5(用户原始密码) + salt 数值(8个随机字符))

因此,加密强度很高。就算是两个用户密码都是 123456, 加密以后,存储的数据也是不一样的。因此除了穷举法,几乎无法破解。而目前大多数程序都是采用md5加密,这种方式的弊端就是可以通过md5反查出原始密码。

如果要比较或者校验用户的密码,你需要从数据表中取用户的 salt 数值,以及密码,然后在进行运算后得到是否一样才可以。6.1F 当中提供了一个函数用来判断用户输入的密码是否正确,这个函数是:checkuserpassword

这个函数有两种用法:
1,根据用户名和密码,进行校验
checkuserpassword(用户名, 密码);
2, 根据用户的uid 和密码,进行校验
checkuserpassword(uid, 密码, 1);

如果返回结果是 true ,则表示密码正确,否则就是错误。

使用范例:(在用户已经登录的情况下,再次让用户输入密码,并检查)[code]

if(!checkuserpassword($discuz_user, '1234567')) {

    showmessage('对不起,你输入的密码 错误');
}
[/code]

gmjacky 发表于 2008-6-4 09:43

[quote]原帖由 [i]admin[/i] 于 2008-6-3 21:50 发表 [url=http://freediscuz.net/bbs/redirect.php?goto=findpost&pid=26794&ptid=3736][img]http://freediscuz.net/bbs/images/common/back.gif[/img][/url]
楼上的解释不太准确。

6.1F 并非采用二次md5加密,而是采用salt加密方式。

也是说

用户的密码 = md5(md5(用户原始密码) + salt 数值(8个随机字符))

因此,加密强度很高。就算是两个用户密码都是 123456, ... [/quote]


原來如此~多謝你的解答~:)
成功了~~~~~~~~~~:victory:

[[i] 本帖最后由 gmjacky 于 2008-6-4 09:56 编辑 [/i]]

僮虎 发表于 2008-8-4 11:39

是不是可以这样说,dz数据转换不成其他论坛数据了?

页: [1]

Powered by Discuz! Archiver 6.1.0F  © 2001-2007 Comsenz Inc.