恢复ECSHOP后台密码的一个问题
按照经验,如果忘记了密码,最简单的办法是重新注册个账户,记住密码
然后用加密过的新账户密码覆盖旧账户的密码就行了
旧账户也可以用这个新密码登录了
可是ECSHOP的验证机制有点奇怪
直接前台注册的账户通过上次的步骤修改后台账户密码后却不能登录
我查看了一下ecshop后台登录验证程序
就是\admin\privilege.php发现了点东西
大概85行
$sql=”SELECT `ec_salt` FROM “. $ecs->table(‘admin_user’) .”WHERE user_name = ‘” . $_POST[‘username’].”‘”;
先查询了一个ec_salt
if(!empty($ec_salt))
{
/* 检查密码是否正确 */
$sql = “SELECT user_id, user_name, password, last_login, action_list, last_login,suppliers_id,ec_salt”.
” FROM ” . $ecs->table(‘admin_user’) .
” WHERE user_name = ‘” . $_POST[‘username’]. “‘ AND password = ‘” . md5(md5($_POST[‘password’]).$ec_salt) . “‘”;
}
else
{
/* 检查密码是否正确 */
$sql = “SELECT user_id, user_name, password, last_login, action_list, last_login,suppliers_id,ec_salt”.
” FROM ” . $ecs->table(‘admin_user’) .
” WHERE user_name = ‘” . $_POST[‘username’]. “‘ AND password = ‘” . md5($_POST[‘password’]) . “‘”;
}
如果有ec_salt就双重md5加密,否则就是简单MD5加密
然后我近数据库把原来管理员的ec_salt清空了
OK,登录正常了