在shopex的4.8.5 的 core/model_v5/member/mdl.account.php
文件里面记录了shopex用户的密码是如何存储到数据库的,在
encrypt_passwd_enhanced 函数里面是这样写的
public function encrypt_passwd_enhanced( $pwd, $uname, $regtime )
{
if ( !$pwd || !$uname || !$regtime )
{
return false;
}
$pwd = md5( md5( trim( $pwd ) ).strtolower( $uname ).$regtime );
return “s”.substr( $pwd, 0, 31 );
}
下图中的红圈部分就是加密代码,那么如果在转移到ecshop 时候,因为ecshop只是做了md5(password) 的密码检查,显然登录会失败,那么再加一种这样的检查,就可以登录了,hoho。。。。
在ecshop 的 includes\modules\integrates\ecshop.php 的行 check_user 函数里面有
if ($row[‘password’] != $this->compile_password(array(‘password’=>$password,’ec_salt’=>$ec_salt)))
我们只需要再加一个
$pwd = md5( md5( trim( $pwd ) ).strtolower( $uname ).$regtime );
$shopex_pass = “s”.substr( $pwd, 0, 31 );
判断改成这样
if ($row[‘password’] != $this->compile_password(array(‘password’=>$password,’ec_salt’=>$ec_salt)) || $row[‘password’] != $shopex_pass )
就可以了