[旧文]解决从动网6.0转雷傲后,用户密码问题

原来的改法是针对LB5000的,已经失效。
新的改法应该是:

打开loginout.cgi,
找到


if ($inpassword ne "") {
   eval {$inpassword = md5_hex($inpassword);};
   if ($@) {eval('use Digest::MD5 qw(md5_hex);$inpassword = md5_hex($inpassword);');}
   unless ($@) {$inpassword = "lEO$inpassword";}
}

改成

if ($inpassword ne "") {
   eval {$inpassword = md5_hex($inpassword);};
   if ($@) {eval('use Digest::MD5 qw(md5_hex);$inpassword = md5_hex($inpassword);');}
   unless ($@)  {
 $DVpassword = substr ($inpassword,8,16);
 $DVpassword = md5_hex($DVpassword);
 $inpassword = "lEO$inpassword";
 $DVpassword="lEO$DVpassword"; }
}


找到

if ($action eq "login") {
  &cleanolddata;
  if (($userregistered ne "no") && ($inpassword eq $password)) {
&whosonline("$inmembername\t论坛登录\tnone\t登录论坛\t");

改成

if ($action eq "login") {
  &cleanolddata;
  if (($userregistered ne "no") && (($inpassword eq $password) || ($DVpassword eq $password))) {
     if ($DVpassword eq $password) {
         require "plugin.lib.pl";
         &upinfodata( name => "$inmembername", password =>"$inpassword");
  }
&whosonline("$inmembername\t论坛登录\tnone\t登录论坛\t");


原因 :DV的加密不是单纯的Md5加密。而是加密了以后采用加密数字的8-16位做密码。而leo是加密了以后全部数字+上LEO前缀。