原来的改法是针对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前缀。