备忘一个shopex的密码加密记录方式

在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。。。。shopex-userpassword

 

在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 )

就可以了

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注