Discuz!官方免费开源建站系统

 找回密码
 立即注册
搜索

[经验] 导入discuz的16位密码解决方案

[复制链接]
findallove 发表于 2007-10-30 16:17:34 | 显示全部楼层 |阅读模式
1.旧论坛的16位md5加密,是没有可能转为32位的,因此只能改造discuz的代码了
2.1需要修改的页面是logging.php,目的是让16位的密码也能通过认证,php中的16位密码获取方法substr(md5($password),8,16)
要更改的代码是
a.$discuz_user = $discuz_pw = $discuz_secques = $md5_password = $md5_password16 = '';
b.list($username, $md5_password) = daddslashes(explode("\t", authcode($loginauth, 'DECODE')), 1);
c.list($username, $md5_password16) = daddslashes(explode("\t", authcode($loginauth, 'DECODE')), 1);
d.$md5_password = md5($password);
e.$md5_password16 = substr(md5($password),8,16);
f.if($member['discuz_uid'] && ($member['discuz_pw'] == $md5_password)||($member['discuz_pw'] == $md5_password16))

3.需要修改的页面是memcp.php
要更改的代码是
a.if($newpassword || $secquesnew != $discuz_secques) {
if(md5($oldpassword)!= $discuz_pw) {
if(substr(md5($oldpassword),8,16)!= $discuz_pw){
showmessage('profile_passwd_wrong', NULL, 'HALTED');
}
}
}

b. if((md5($oldpassword)!=$discuz_pw) && !$passport_status)
{
if((substr(md5($oldpassword),8,16)!=$discuz_pw) && !$passport_status){
showmessage('profile_passwd_wrong', NULL, 'HALTED');
}
else{
$emailnew = $passport_status ? $member['email'] : $emailnew;
$accessexp = '/('.str_replace("\r\n", '|', preg_quote($accessemail, '/')).')$/i';
$censorexp = '/('.str_replace("\r\n", '|', preg_quote($censoremail, '/')).')$/i';
$invalidemail = $accessemail ? !preg_match($accessexp, $emailnew) : $censoremail && preg_match($censorexp, $emailnew);
if(!isemail($emailnew) || $invalidemail) {
showmessage('profile_email_illegal');
}
}
} else {
$emailnew = $passport_status ? $member['email'] : $emailnew;
$accessexp = '/('.str_replace("\r\n", '|', preg_quote($accessemail, '/')).')$/i';
$censorexp = '/('.str_replace("\r\n", '|', preg_quote($censoremail, '/')).')$/i';
$invalidemail = $accessemail ? !preg_match($accessexp, $emailnew) : $censoremail && preg_match($censorexp, $emailnew);
if(!isemail($emailnew) || $invalidemail) {
showmessage('profile_email_illegal');
}
}

4.如有疑问可以大家一起讨论解决

5.如果你有老论坛要导数据的,本人愿意帮忙

QQ:64816414

资源地址:http://www.zaqi.net/files_view.asp?files_id=1191
回复

使用道具 举报

白乐天 发表于 2007-11-1 23:16:01 | 显示全部楼层
dz已经提供了logging.php,可以不必自己改。
回复

使用道具 举报

subs 发表于 2008-1-31 15:25:18 | 显示全部楼层
原帖由 白乐天 于 2007-11-1 23:16 发表
dz已经提供了logging.php,可以不必自己改。

请问在什么地方下载??还是目前的就兼容16位和32位?????谢谢
回复

使用道具 举报

kook12368 发表于 2008-1-31 15:42:42 | 显示全部楼层
用这个就可以满足你的要求

logging.rar

2.31 KB, 下载次数: 461

回复

使用道具 举报

subs 发表于 2008-1-31 19:27:17 | 显示全部楼层
原帖由 kook12368 于 2008-1-31 15:42 发表
用这个就可以满足你的要求

我用了恒浪整合,现在不能用了,因为我是从动网转过来的!md5是16位,恒浪只支持32位
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-9-14 10:39 , Processed in 0.162522 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表