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

 找回密码
 立即注册
搜索

[转换] 动网论坛转(所有asp系统)DZ6.1的用户登录问题解决思路

[复制链接]
bizabc 发表于 2008-5-10 11:29:00 | 显示全部楼层 |阅读模式
遇到的问题:
用upgrade10.php能顺利把动网专成DZ6.1,但是用户登录有很大的问题,用替换的logging.php能让老用户登录,但是不能更新密码,同时新用户登录不了,如果用dz6.1心的logging.php,新用户可以登录,老用户不行,所以分析了其中原因,大致如下,有不正之处,敬请指导。

根本原因:
用来替换的logging.php 的密码验证机制是基于标准的16位或32位的MD5密码。
UCENTER 和DZ6.1新的密码验证机制是基于新的comsenz特有的MD5加密,好像是md5(md5(oldpassword),$salt)

1. 转换过程中,老用户的DZ6.1的密码还是原来标准的16位的MD5, 可是UCENTER里面的密码却是把原来的16位MD5密码再md5(md5(oldpassword),$salt)了。所以用DZ6.1的logging.php 老用户肯定不能登录,但新用户可以,新用户的密码已经不再是标准的32 或16位的MD5密码,被 md5(md5(oldpassword),$salt)了。

2. 用来替换的logging.php 文件能登录旧用户,因为它不和UCENTER发生关系,密码肯定正确,但是新注册用户他的密码已经传到UCENTER,而且在DZ6.1的用户表中的密码也被md5(md5(oldpassword),$salt)了,而用来替换的logging.php 的密码验证机制只验证标准的MD5 32或MD5 16位密码,所以肯定不能登录了,但是新用户用新的DZ6.1的LOGGING.PHP肯定能登陆,楼主可以试验下。

我翻遍了论坛还么有找到合适的解决方案,我的解决思路如下,希望能引起各位大佬的注意:

首先修改DZ6.1的loggin.php文件,让他支持两种密码验证机制,即
1. 验证标准的MD5 32或MD5 16位密码 (若老用户在DZ6.1密码验证通过,即刻更新她在UCTENR里的密码,这涉及到在这个验证步骤里面不理会ucenter的密码验证。)
2. 验证COMSENZ系列的MD5 密码 (md5(oldpassword),$salt)以便支持新用户的登录。
同时让此文件支持老用户登陆之后自动更新密码,以符合新的验证机制。

希望康盛关注,谢谢。
回复

使用道具 举报

 楼主| bizabc 发表于 2008-5-10 13:35:55 | 显示全部楼层
自己顶上去
回复

使用道具 举报

白乐天 发表于 2008-5-10 14:48:16 | 显示全部楼层
dz这次修改密码加密步骤不知道出于什么考虑。在我看清楚之前不会升级。
回复

使用道具 举报

 楼主| bizabc 发表于 2008-5-10 17:07:24 | 显示全部楼层

问题已解决

其实不用logging.php, 直接把uc_clinet覆盖所有的系统就可以了。

[ 本帖最后由 bizabc 于 2008-5-10 19:58 编辑 ]
回复

使用道具 举报

孤独的阿狼 发表于 2008-5-10 22:29:10 | 显示全部楼层
直接转换的时候把密码都转了不就得了,又不麻烦,反正要转用户。

转换程序里有一个MD5的函数,不过我没看明白是什么意思,不知道是否确实是把16位的转成32位的了。
回复

使用道具 举报

 楼主| bizabc 发表于 2008-5-11 09:55:43 | 显示全部楼层
转换的时候不可能直接把16位转成32位的。
回复

使用道具 举报

beluckly 发表于 2008-6-13 14:12:51 | 显示全部楼层
论坛的用户表里密码是假的,就是一组随机数然后Md5,不是用户的密码
用户的密码都只存储在Ucenter的用户表里,而且是 md5(md5(用户密码).$salt)
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-15 04:35 , Processed in 0.110567 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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