WordPress 忘记密码找回的方法
好记性不如烂笔头,如果你没有把WordPress密码写在纸上,忘记了后台密码也不用担心,WordPress找回后台管理员密码的方法是非常多的。
方法一:WordPress原生找回密码方法(已测试)
1、WordPress登录界面,有一个找回密码的链接,如下图所示,点击 忘记密码
“忘记密码”链接格式是:
https://你的域名/wp-login.php?action=lostpassword
例如米扑博客找回密码:
https://blog.mimvp.com/wp-login.php?action=lostpassword
2、填写用户名或电子邮件,就会发送找回密码的链接到你的邮箱。
3、收到重置密码邮件,打开链接,修改密码
方法二:主题文件functions.php添加代码重置密码(已测试)
将以下代码放到主题文件functions.php中,访问一下你的WordPress站点就重置成功了
重置后的密码为 'mimvp-blog',但你要记得登录用户名才行,一般默认登录用户名为 admin(但也可能会修改成了其它用户名,例如米扑博客的登录用户名为:mimvp-admin)
$user_id = 1; $password = 'mimvp-blog'; wp_set_password( $password, $user_id );
注意:$user_id需要是管理员账号的ID,一般默认都是1,请见方法三中的 wp_users 表中的 ID = 1,即是管理员ID
方法三:修改数据库字段找回 (推荐,已测试)
如果你的WordPress站点不能发邮件,又无法访问主题文件,那就无法收到找回密码的邮件,此时可以通过修改数据库字段来找回。
进入WP数据库,或者登录phpMyAdmin面板,找到wp_users表,如下所示:
MariaDB [mimvp-blog]> select id, user_login, user_pass, user_email, user_url from wp_users where id = 1; +----+------------+------------------------------------+-----------------+------------------------+ | id | user_login | user_pass | user_email | user_url | +----+------------+------------------------------------+-----------------+------------------------+ | 1 | mimvp-admin| $P$DSq40WyzsC/J4N3OMKabcdfwRh7HBg. | xxxxx@mimvp.com | https://blog.mimvp.com | +----+------------+------------------------------------+-----------------+------------------------+
可以看到管理员ID=1,登录用户名、原密码、邮箱,米扑博客链接等信息,
重置密码,需修改 user_pass字段的值为:$P$BbUP7LUuwxYdKIeNhiIGYkKVJd6H0E0 (加密前的明文为 123456)
update wp_users set user_pass = '$P$BbUP7LUuwxYdKIeNhiIGYkKVJd6H0E0' where id = 1;
然后,这样就可以使用密码:123456 登录了。
这个user_pass的值还接受32位MD5值,你可以使用在线Md5加密工具加密你的密码,然后填写进去。
既然讲到这里,就多说一句,WP默认登录用户名为 admin,为了增强安全性,可以通过SQL修改默认的admin为其它用户名
例如:米扑博客修改了默认的登录用户名 admin 为 mimvp-admin,这样防止了有人知道admin来撞库破解密码。
方法四:使用WP官方脚本重置密码(未测试)
官方脚本,实际是把方法三修改数据库的方式,做成了页面让用户输入用户名、密码,去修改数据库。
操作步骤,将以下代码保存为 reset-passwd.php
<?php require './wp-blog-header.php'; function meh() { global $wpdb; if ( isset( $_POST['update'] ) ) { $user_login = ( empty( $_POST['e-name'] ) ? '' : sanitize_user( $_POST['e-name'] ) ); $user_pass = ( empty( $_POST[ 'e-pass' ] ) ? '' : $_POST['e-pass'] ); $answer = ( empty( $user_login ) ? '<div id="message" class="updated fade"><p><strong>用户名不能为空</strong></p></div>' : '' ); $answer .= ( empty( $user_pass ) ? '<div id="message" class="updated fade"><p><strong>密码不能为空</strong></p></div>' : '' ); if ( $user_login != $wpdb->get_var( "SELECT user_login FROM $wpdb->users WHERE ID = '1' LIMIT 1" ) ) { $answer .="<div id='message' class='updated fade'><p><strong>这不是管理员账号,确保wp_users表里管理账号的ID为1</strong></p></div>"; } if ( empty( $answer ) ) { $wpdb->query( "UPDATE $wpdb->users SET user_pass = MD5('$user_pass'), user_activation_key = '' WHERE user_login = '$user_login'" ); $plaintext_pass = $user_pass; $message = "更新后的管理员账号密码如下:\r\n"; $message .= sprintf( '用户名: %s', $user_login ) . "\r\n"; $message .= sprintf( '密码: %s', $plaintext_pass ) . "\r\n"; @wp_mail( get_option( 'admin_email' ), sprintf( '[%s] 你的WordPress管理员密码重置成功!', get_option( 'blogname' ) ), $message ); $answer="<div id='message' class='updated fade'><p><strong>你的WordPress管理员密码重置成功!</strong></p><p><strong>密码已通过邮件的方式发送到了你的管理员邮箱</strong></p><p><strong>请现在立即删除这个重置密码脚本!</strong></p></div>"; } } return empty( $answer ) ? false : $answer; } $answer = meh(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>WordPress 重置密码</title> <meta http-equiv="Content-Type" content="<?php bloginfo( 'html_type' ); ?>; charset=<?php bloginfo( 'charset' ); ?>" /> <link rel="stylesheet" href="<?php bloginfo( 'wpurl' ); ?>/wp-admin/wp-admin.css?version=<?php bloginfo( 'version' ); ?>" type="text/css" /> </head> <body> <div class="wrap"> <form method="post" action=""> <h2>WordPress 重置密码</h2> <?php echo $answer; ?> <fieldset class="options"> <legend>管理账号</legend> <label>用户名<br /> <input type="text" name="e-name" id="e-name" class="input" value="<?php echo attribute_escape( stripslashes( $_POST['e-name'] ) ); ?>" size="20" tabindex="10" /></label> </fieldset> <fieldset class="options"> <legend>密码</legend> <label>输入新密码<br /> <input type="text" name="e-pass" id="e-pass" class="input" value="<?php echo attribute_escape( stripslashes( $_POST['e-pass'] ) ); ?>" size="25" tabindex="20" /></label> </fieldset> <p class="submit"><input type="submit" name="update" value="修改密码" /></p> </form> </div> </body> </html> <?php exit; ?>
上传 reset-passwd.php 到网站根目录,访问:
https://你的域名/reset-passwd.php
现在,可以在这个重置密码页面修改密码了,修改完成后记得删除这个脚本!
参考推荐:
WordPress 安全隐藏 wp-login.php 后台登陆入口
Centos7 配置 sendmail、postfix 端口号25、465
版权所有: 本文系米扑博客原创、转载、摘录,或修订后发表,最后更新于 2019-01-23 05:03:04
侵权处理: 本个人博客,不盈利,若侵犯了您的作品权,请联系博主删除,莫恶意,索钱财,感谢!