密碼錯誤問題.
由於Discuz! 6.1F採用其他算法來保護密碼,一些需要輸入密碼的插件便無法使用....請問有沒有方法可以解決?? 官方 6.1.0 是二次 md5 加密,我想错了,实在抱歉。详情请见 8楼。 顶个! $password = md5($password);
if ($password == $discuz_pw) {
....
...
如果这样要怎样改??
(2次加密...可否2次解密....:L ) 頂!!!!!!!!! 不知道你要二次解密做什么?
php 里 md5 不可逆,一般现在解密 md5 的都是暴力破解。
官方 6.1.0 是二次 md5 加密,我想错了,实在抱歉。
详情请见 8楼。 [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]
我再試試看~
沒什么...好奇而已....:$ ..不用試也知道...二次加密後...用網上的方法根本不能取得第一次加密內容...=.= 楼上的解释不太准确。
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] [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]] 是不是可以这样说,dz数据转换不成其他论坛数据了?
页:
[1]