分类
未分类

通过wordpress数据库修改管理员密码的终级办法

在忘记wordpress管理员密码的时候,想要通过电邮找回密码。可此时才发现邮件功能并没有设置完善,这种方式无法找回密码,是不是让人爬头挠腮也无可奈何?!

相信大部分用过wordpress的用户都会有遇到过这种情况。那么最高效的解决办法是什么呢?

其实,办法还是有的:

那就是:通过修改数据库当中的用户密码字段即可。

可问题来了:那个密码字段处显示的都是WP加密后的,不知道它的算法就不能反向算出密码,可自己输入的明文密码输进去的话,在前端是无法登陆的。

所以

先说说它的加密方式:

首先,我们要知道WordPress系统的用户密码是保存在wp_users数据表的user_pass字段,密码是通过Portable PHP password hashing framework类产生的,密码的形式是随机且不可逆,同一个明文的密码在不同时间,产生的密文也不一样,相对来说较为安全。

WordPress用户密码产生的过程是,当需要生成用户密码的时候,随机产生了一个salt,然后将salt和password相加,又进行了count次md5,最后和encode64的hash数值累加,就得到了一个以$P$开头的密码,这个密码每次产生的结果都不一样,下面就是产生WordPress密码的代码,将其放在WordPress根目录下,就可以生成一个加密的password,用这个密码替换掉wp_users数据表的user_pass字段即可修改密码。

通过它的加密算法原理,得到一个新的解决办法:

第一种方法:

<?php $password = 'abc'; global $wp_hasher; if ( empty($wp_hasher) ) {  require_once( './wp-includes/class-phpass.php');  $wp_hasher = new PasswordHash(8, TRUE); } echo $wp_hasher->HashPassword($password);?>

有没有更简单的方法呢,答案是有的:

第二种方法:

不过,修改WordPress用户密码还有更简单的方法,就是直接将wp_users数据表的user_pass字段修改为32位的md5(passowrd)即可修改密码为password,这样的密码形式当然不是很安全,所以,当这个用户在WordPress登录后,系统会自动将MD5密码修改为以$P$开头的密码。