真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

wordpress密文 wordpress密碼

wordpress如何修改加密算法

WordPress系統(tǒng)的用戶密碼是保存在wp_users數(shù)據(jù)表的user_pass字段,密碼是通過Portable PHP password hashing framework類產(chǎn)生的,密碼的形式是隨機(jī)且不可逆,同一個(gè)明文的密碼在不同時(shí)間,產(chǎn)生的密文也不一樣,相對(duì)來說較為安全。

創(chuàng)新互聯(lián)服務(wù)緊隨時(shí)代發(fā)展步伐,進(jìn)行技術(shù)革新和技術(shù)進(jìn)步,經(jīng)過十多年的發(fā)展和積累,已經(jīng)匯集了一批資深網(wǎng)站策劃師、設(shè)計(jì)師、專業(yè)的網(wǎng)站實(shí)施團(tuán)隊(duì)以及高素質(zhì)售后服務(wù)人員,并且完全形成了一套成熟的業(yè)務(wù)流程,能夠完全依照客戶要求對(duì)網(wǎng)站進(jìn)行成都網(wǎng)站制作、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、建設(shè)、維護(hù)、更新和改版,實(shí)現(xiàn)客戶網(wǎng)站對(duì)外宣傳展示的首要目的,并為客戶企業(yè)品牌互聯(lián)網(wǎng)化提供全面的解決方案。

WordPress用戶密碼產(chǎn)生的過程是,當(dāng)需要生成用戶密碼的時(shí)候,隨機(jī)產(chǎn)生了一個(gè)salt,然后將salt和password相加,又進(jìn)行了count次md5,最后和encode64的hash數(shù)值累加,就得到了一個(gè)以$P$開頭的密碼,這個(gè)密碼每次產(chǎn)生的結(jié)果都不一樣,下面就是產(chǎn)生WordPress密碼的代碼,將其放在WordPress根目錄下,就可以生成一個(gè)加密的password,用這個(gè)密碼替換掉wp_users數(shù)據(jù)表的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數(shù)據(jù)表的user_pass字段修改為32位的md5(passowrd)即可修改密碼為password,這樣的密碼形式當(dāng)然不是很安全,所以,當(dāng)這個(gè)用戶在WordPress登錄后,系統(tǒng)會(huì)自動(dòng)將MD5密碼修改為以$P$開頭的密碼。

WordPress的這種支持簡單md5格式的密碼使得其他系統(tǒng)(例如Ucenter系統(tǒng))的用戶整合WordPress更為簡單。

希望可以幫到你!

wordpress的加密系統(tǒng)是怎樣的?

WordPress用戶密碼“產(chǎn)生”的過程是,當(dāng)需要“生成”用戶密碼的時(shí)候,隨機(jī)產(chǎn)生了一個(gè)salt

驗(yàn)證的時(shí)候還用這個(gè)salt行了,個(gè)人意見,僅供參考。

wordpress是開源的,樓主可以讀源碼細(xì)研究。

mysql 8.0 創(chuàng)建新的數(shù)據(jù)庫、用戶并授權(quán),以及相關(guān)查看并刪除操作

以創(chuàng)建wordpress網(wǎng)站的數(shù)據(jù)庫為例

1、創(chuàng)建數(shù)據(jù)庫

創(chuàng)建可指定字符,或者不指定字符,如果不指定字符,默認(rèn)為 utf8mb4 和 utf8mb4_0900_ai_ci

2、創(chuàng)建用戶

可自行指定用戶可訪問的IP地址范圍。

3、授權(quán)用戶

4、直接一步到位

或者 這種方法 :創(chuàng)建并授權(quán)用戶,是二和三的合并。

1、查看數(shù)據(jù)庫

show databases可查詢所有存在的數(shù)據(jù)庫

2、查看用戶信息

用戶信息在系統(tǒng)數(shù)據(jù)庫mysql中的user表中。密碼查詢不會(huì)顯示明文密碼,而是顯示為加密后的密文。

3、查看用戶權(quán)限

有兩種方式查看。

第一種方式 : show grants for 'userwordpress';

第二種方式: select * from mysql.user where user='userwordpress'G;

g 相當(dāng)于’;’

G使每個(gè)字段打印到單獨(dú)的行,也有 ’;' 的作用

只能查出哪個(gè)數(shù)據(jù)庫的哪張表的權(quán)限,如查userwordpress在mysql數(shù)據(jù)庫的user表的權(quán)限,顯示都是N(no),沒有權(quán)限,如果查root用戶就都是Y(yes)選擇了。

用drop而非delete,簡單的區(qū)分就是,drop是刪除【表】,truncate與delete則是刪除表中【記錄】。

刪除用戶

同理,刪除數(shù)據(jù)庫

用drop刪除時(shí),會(huì)有確認(rèn)信息,為了防止誤刪。(刪庫跑路,請(qǐng)謹(jǐn)慎操作)

怎么實(shí)現(xiàn) wordpress個(gè)人博客 讓別人進(jìn)去輸入我的域名的時(shí)候 要密碼驗(yàn)證才能進(jìn)去呢

一。研究wordpress時(shí)wordpess的密碼密碼生成與登錄密碼驗(yàn)證方式很重要

WordPress密碼已成為整合的首要目標(biāo),如何征服整合,就得了解WordPress密碼算法。

WordPress系統(tǒng)的用戶密碼是保存在wp_users數(shù)據(jù)表的user_pass字段,密碼是通過Portable PHP password hashing framework類產(chǎn)生的,密碼的形式是隨機(jī)且不可逆,同一個(gè)明文的密碼在不同時(shí)間,產(chǎn)生的密文也不一樣,相對(duì)來說較為安全。

二。密碼生成方式

隨機(jī)產(chǎn)生一個(gè)salt 并將salt和password相加

進(jìn)行了count次md5 然后和encode64的hash數(shù)值累加

最后得到一個(gè)以$P$開頭的密碼,這個(gè)密碼每次產(chǎn)生的結(jié)果都不一樣

以下為在wordpress中調(diào)用密碼生成的代碼

[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密碼生成與登錄驗(yàn)證

wordpress中位置為\wp-includes\class-phpass.php

以下是wordpress中生成密碼的代碼直接運(yùn)行可查看密碼的生成以及驗(yàn)證過程

[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";

//驗(yàn)證密碼

$data = $wp_hasher-CheckPassword($passwordValue,$sigPassword);

if($data){

echo '密碼正確';

}else{

echo '密碼錯(cuò)誤';

}

?

此為一個(gè)wordpres密碼生成與登錄驗(yàn)證實(shí)例,其中HashPassword為生成密碼,CheckPassword為驗(yàn)證密碼

itoa64 = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; 為以上提到的生成salt的基礎(chǔ)字符串。

備注:由于csdn代碼顯示插件對(duì)特殊字符的限制。 請(qǐng)將以上代碼中 XXXXX替換為 $' 注意有單引號(hào),代碼中一共有5處


文章名稱:wordpress密文 wordpress密碼
轉(zhuǎn)載源于:http://weahome.cn/article/ddscijp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部