帝国cms重置密码的一个方法,程序员适用

e/class/adminfun.php 里面 function login

找到

$ch_password=DoEmpireCMSAdminPassword($password,$user_r[‘salt’],$user_r[‘salt2’]);

在这下面加 var_dump($ch_password);die();

然后前台直接写登录名,如果你没忘记的话,(如果忘记了,请到 phome_enewsuser 表里面查。)

密码的话,你就随便写一个你想设置的密码吧,然后提交

提交的结果是直接显示出来一个32位的字符串,把这个字符串更新到 phome_enewsuser 的password 字段吧

update phome_enewsuser set `password`=’这里刚才的那个字符串’ where username = ‘你的用户名’ ;

弄好后,把刚才的代码删掉 var_dump($ch_password);die(); 恢复原状。哈哈哈

然后就可以用你的新密码登录了。

备忘一个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 )

就可以了

 

 

mysql 重置密码的正确方法

net stop mysql 先停下当前mysql服务 
c:\mysql-init.txt 内容如下
UPDATE mysql.user SET Password=PASSWORD('phpsir') WHERE User='root';
FLUSH PRIVILEGES;

然后 启动 mysql

C:\> "C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld.exe"  --defaults-file="C:\\Program Files\\MySQL\\MySQL Server 5.5\\my.ini" --init-file=C:\\mysql-init.txt  --console

参考 : http://dev.mysql.com/doc/refman/5.5/en/resetting-permissions.html