遇到的问题:
用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)以便支持新用户的登录。
同时让此文件支持老用户登陆之后自动更新密码,以符合新的验证机制。
希望康盛关注,谢谢。 |