重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
wordpress登陆密码忘记了,可以通过登陆数据库修改wp-user表格的MD5加密的字段。
十年的哈尔滨网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站的优势是能够根据用户设备显示端的尺寸不同,自动调整哈尔滨建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联建站从事“哈尔滨网站设计”,“哈尔滨网站推广”以来,每个客户项目都认真落实执行。
所需工具:phpMyAdmin的账号密码
步骤:
一、登陆网站数据库后台,输入账号密码。虚拟主机的phpMyAdmin入口一般在虚拟主机服务商的网站里面。
二、进入数据库后,找到wp-users表格,点进去,可以看到user_pass字段,把下面的一长串MD5代码改5d41402abc4b2a76b9719d911017c592然后点提交修改。"5d41402abc4b2a76b9719d911017c592"对应的密码是"hello".
三、登陆网站后台,输入用户名,密码此时已经变成hello了。
四、进入wordpress后台,及时修改密码。选择用户菜单,找到当前用户名,选择编辑。在新密码选项中,选择生成,然后在修改你想要的密码。最后点击保存。
注意:这里主要以阿里云的虚拟主机为例,大部分虚拟主机的数据库进入基本雷同。如果是服务器主机,登陆服务器在浏览器输入localhost/phpMyAdmin后面操作步骤一样。
以下内容复制自百度经验
hong013244690的经验
WordPress后台登陆密码寻回方法
使用wordpress程序自带的找回密码方式
如果你忘记wordpress后台密码,在输入错误的密码过后,后台会提醒wordpress密码错误,这时候你在登录页点击”忘记密码?”
然后输入admin或电子邮箱地址。接着,
你会收到密码重置邮件,
点击里面的重置链接。所以为了安全起见,自己邮箱的密码也不要太简单,否则被曲线拿下了网站就悲催了。(最简单的方法)
通过执行Mysql语句更改Wordpress密码
通过
password-resetter
文件找回后台密码。首先需要下载:
password-resetter.zip文件。然后将password-resetter.zip解压;上传password-resetter.php到WordPress根目录;运行http://域名/password-resetter.php;在Set
admin
password:后面输入你要重置的管理员密码!然后点提交查询内容就可以完成wordpress
更改密码了。修改完毕后一定不要删除根目录的该文件。
通过修改MD5值找回Wordpress密码。登陆phpmyadmin,登陆后第一步是选择数据库,一般虚拟主机都带有phpmyadmin。然后打开wp_users字段,找到管理员用户,将其中的user_pass字段中的MD5密码为:
(例子)5d41402abc4b2a76b9719d911017c592,然后回到WordPress登陆页面,使用密码”hello”
登陆。
1领酷网a
href=""
target="_blank";/a
下面的六种方法都可以解决WordPress忘记密码的问题,你可以根据自身情况任选一种。 1、重装WordPress。我们不推荐这种方法,重装还要下载安装文件比较麻烦。 2、使用找回密码功能。WordPress 本身支持邮件取回密码功能,如果管理员账户的电子邮件有效,在后台登录界面,点击“忘记密码?”链接,输入正确邮件地址后,即可收到一封含重置密码的邮件。 3、把WP目录下的wp-config.php文件删除,然后重新访问网站,这会让你重新进行最后一个安装步骤,这样就可以得到新的密码。 4、登录 phpMyAdmin ,找到WP数据库的wp_users表,在这里可以看到默认的用户admin,它的密码是加密过的。这时,我们可以修改这条数据,找到user_pass这个域,把它原来的一长串数据删掉,写上你的密码,比如123456。这时,你会看到一个函数的下拉框,把它选择为MD5。这是为了把你的密码进行MD5算法加密,再保存。这样,再通过你的域名/wp-admin 访问到管理入口,用这个密码就可以登陆了。 5、通过 SQL 语句修改密码。登录 phpMyAdmin 进入 WordPress 数据库并执行以下 SQL 语句:1UPDATE wp_users SET user_pass = MD5(‘PASSWORD’) WHERE wp_users.user_login =’admin’ LIMIT 1; 6、使用 PHP 找回密码。PHP 方法归根结底也是 SQL 查询语句修改的方式,只不过提供一个用户界面。将以下代码复制并保存为 password-resetter.php 文件,上传至 WordPress 根目录,然后运行该文件,输入密码即可重置。 ?
一。研究wordpress时wordpess的密码密码生成与登录密码验证方式很重要
WordPress密码已成为整合的首要目标,如何征服整合,就得了解WordPress密码算法。
WordPress系统的用户密码是保存在wp_users数据表的user_pass字段,密码是通过Portable PHP password hashing framework类产生的,密码的形式是随机且不可逆,同一个明文的密码在不同时间,产生的密文也不一样,相对来说较为安全。
二。密码生成方式
随机产生一个salt 并将salt和password相加
进行了count次md5 然后和encode64的hash数值累加
最后得到一个以$P$开头的密码,这个密码每次产生的结果都不一样
以下为在wordpress中调用密码生成的代码
[php] view plain copy print?
?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密码生成与登录验证
wordpress中位置为\wp-includes\class-phpass.php
以下是wordpress中生成密码的代码直接运行可查看密码的生成以及验证过程
[php] view plain copy print?
?php
class PasswordHash {
var $itoa64;
var $iteration_count_log2;
var $portable_hashes;
var $random_state;
function PasswordHash($iteration_count_log2, $portable_hashes)
{
$this-itoa64 = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
if ($iteration_count_log2 4 || $iteration_count_log2 31)
$iteration_count_log2 = 8;
$this-iteration_count_log2 = $iteration_count_log2;
$this-portable_hashes = $portable_hashes;
$this-random_state = microtime() . uniqid(rand(), TRUE); // removed getmypid() for compability reasons
}
function get_random_bytes($count)
{
$output = '';
if ( @is_readable('/dev/urandom')
($fh = @fopen('/dev/urandom', 'rb'))) {
$output = fread($fh, $count);
fclose($fh);
}
if (strlen($output) $count) {
$output = '';
for ($i = 0; $i $count; $i += 16) {
$this-random_state =
md5(microtime() . $this-random_state);
$output .=
pack('H*', md5($this-random_state));
}
$output = substr($output, 0, $count);
}
return $output;
}
function encode64($input, $count)
{
$output = '';
$i = 0;
do {
$value = ord($input[$i++]);
$output .= $this-itoa64[$value 0x3f];
if ($i $count)
$value |= ord($input[$i]) 8;
$output .= $this-itoa64[($value 6) 0x3f];
if ($i++ = $count)
break;
if ($i $count)
$value |= ord($input[$i]) 16;
$output .= $this-itoa64[($value 12) 0x3f];
if ($i++ = $count)
break;
$output .= $this-itoa64[($value 18) 0x3f];
} while ($i $count);
return $output;
}
function gensalt_private($input)
{
$output = '$PXXXXX;
$output .= $this-itoa64[min($this-iteration_count_log2 +
((PHP_VERSION = '5') ? 5 : 3), 30)];
$output .= $this-encode64($input, 6);
return $output;
}
function crypt_private($password, $setting)
{
$output = '*0';
if (substr($setting, 0, 2) == $output)
$output = '*1';
$id = substr($setting, 0, 3);
# We use "$P{1}quot;, phpBB3 uses "$H{1}quot; for the same thing
if ($id != '$PXXXXX $id != '$HXXXXX)
return $output;
$count_log2 = strpos($this-itoa64, $setting[3]);
if ($count_log2 7 || $count_log2 30)
return $output;
$count = 1 $count_log2;
$salt = substr($setting, 4, 8);
if (strlen($salt) != 8)
return $output;
# We're kind of forced to use MD5 here since it's the only
# cryptographic primitive available in all versions of PHP
# currently in use. To implement our own low-level crypto
# in PHP would result in much worse performance and
# consequently in lower iteration counts and hashes that are
# quicker to crack (by non-PHP code).
if (PHP_VERSION = '5') {
$hash = md5($salt . $password, TRUE);
do {
$hash = md5($hash . $password, TRUE);
} while (--$count);
} else {
$hash = pack('H*', md5($salt . $password));
do {
$hash = pack('H*', md5($hash . $password));
} while (--$count);
}
$output = substr($setting, 0, 12);
$output .= $this-encode64($hash, 16);
return $output;
}
function gensalt_extended($input)
{
$count_log2 = min($this-iteration_count_log2 + 8, 24);
# This should be odd to not reveal weak DES keys, and the
# maximum valid value is (2**24 - 1) which is odd anyway.
$count = (1 $count_log2) - 1;
$output = '_';
$output .= $this-itoa64[$count 0x3f];
$output .= $this-itoa64[($count 6) 0x3f];
$output .= $this-itoa64[($count 12) 0x3f];
$output .= $this-itoa64[($count 18) 0x3f];
$output .= $this-encode64($input, 3);
return $output;
}
function gensalt_blowfish($input)
{
# This one needs to use a different order of characters and a
# different encoding scheme from the one in encode64() above.
# We care because the last character in our encoded string will
# only represent 2 bits. While two known implementations of
# bcrypt will happily accept and correct a salt string which
# has the 4 unused bits set to non-zero, we do not want to take
# chances and we also do not want to waste an additional byte
# of entropy.
$itoa64 = './ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
$output = '$2aXXXXX;
$output .= chr(ord('0') + $this-iteration_count_log2 / 10);
$output .= chr(ord('0') + $this-iteration_count_log2 % 10);
$output .= 'XXXXX;
$i = 0;
do {
$c1 = ord($input[$i++]);
$output .= $itoa64[$c1 2];
$c1 = ($c1 0x03) 4;
if ($i = 16) {
$output .= $itoa64[$c1];
break;
}
$c2 = ord($input[$i++]);
$c1 |= $c2 4;
$output .= $itoa64[$c1];
$c1 = ($c2 0x0f) 2;
$c2 = ord($input[$i++]);
$c1 |= $c2 6;
$output .= $itoa64[$c1];
$output .= $itoa64[$c2 0x3f];
} while (1);
return $output;
}
function HashPassword($password)
{
$random = '';
if (CRYPT_BLOWFISH == 1 !$this-portable_hashes) {
$random = $this-get_random_bytes(16);
$hash =
crypt($password, $this-gensalt_blowfish($random));
if (strlen($hash) == 60)
return $hash;
}
if (CRYPT_EXT_DES == 1 !$this-portable_hashes) {
if (strlen($random) 3)
$random = $this-get_random_bytes(3);
$hash =
crypt($password, $this-gensalt_extended($random));
if (strlen($hash) == 20)
return $hash;
}
if (strlen($random) 6)
$random = $this-get_random_bytes(6);
$hash =
$this-crypt_private($password,
$this-gensalt_private($random));
if (strlen($hash) == 34)
return $hash;
# Returning '*' on error is safe here, but would _not_ be safe
# in a crypt(3)-like function used _both_ for generating new
# hashes and for validating passwords against existing hashes.
return '*';
}
function CheckPassword($password, $stored_hash)
{
$hash = $this-crypt_private($password, $stored_hash);
if ($hash[0] == '*')
$hash = crypt($password, $stored_hash);
return $hash == $stored_hash;
}
}
//原始密码
$passwordValue = "123456";
//生成密码
$wp_hasher = new PasswordHash(8, TRUE);
$sigPassword = $wp_hasher-HashPassword($passwordValue);
echo "生成的密码为:".$sigPassword;
echo "\n";
//验证密码
$data = $wp_hasher-CheckPassword($passwordValue,$sigPassword);
if($data){
echo '密码正确';
}else{
echo '密码错误';
}
?
此为一个wordpres密码生成与登录验证实例,其中HashPassword为生成密码,CheckPassword为验证密码
itoa64 = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; 为以上提到的生成salt的基础字符串。
备注:由于csdn代码显示插件对特殊字符的限制。 请将以上代码中 XXXXX替换为 $' 注意有单引号,代码中一共有5处