溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

PHP hash_pbkdf2 哈希(Hash)函數(shù)

發(fā)布時間:2020-08-06 09:09:47 來源:網(wǎng)絡(luò) 閱讀:349 作者:web全棧 欄目:web開發(fā)

定義和用法

hash_pbkdf2?- 生成所提供密碼的 PBKDF2 密鑰導(dǎo)出

版本支持

PHP4PHP5PHP7
不支持V5.5.0+支持支持
7.2.0 不再支持非加密的哈希函數(shù)(adler32,crc32,crc32b,fnv132,fnv1a32,fnv164,fnv1a64,joaat)。

語法

hash_pbkdf2(?string?$algo?,?string?$password?,?string?$salt?,?int?$iterations?[,?int?$length?=?0?[,?bool?$raw_output?=?FALSE?]]?)

hash_pbkdf2()?生成所提供密碼的 PBKDF2 密鑰導(dǎo)出


參數(shù)

參數(shù)必需的描述
algo要使用的哈希算法名稱,例如:"md5","sha256","haval160,4" 等。 如何獲取受支持的算法清單,請參見?hash_algos()。
password要進行導(dǎo)出的密碼。
salt進行導(dǎo)出時所使用的“鹽”,這個值應(yīng)該是隨機生成的。
iterations進行導(dǎo)出時的迭代次數(shù)。
length密鑰導(dǎo)出數(shù)據(jù)的長度。如果 raw_output 為 TRUE, 此參數(shù)為密鑰導(dǎo)出數(shù)據(jù)的字節(jié)長度。如果 raw_output 為 FALSE, 此參數(shù)為密鑰導(dǎo)出數(shù)據(jù)的字節(jié)長度的 2 倍,因為 1 個字節(jié)數(shù)據(jù)對應(yīng)的 2 個 16 進制的字符。如果傳入 0,則使用所選算法的完整輸出大小。
raw_output設(shè)置為 TRUE 輸出原始二進制數(shù)據(jù), 設(shè)置為 FALSE 輸出小寫 16 進制字符串。

返回值

如果 raw_output 設(shè)置為 TRUE, 則返回原始二進制數(shù)據(jù)表示的信息摘要, 否則返回 16 進制小寫字符串格式表示的信息摘要。

在以下情況下會產(chǎn)生 E_WARNING: 指定了未知的算法, iterations 小于等于 0, length 小于等于 0 或者 salt 過長(大于 INT_MAX - 4)。


示例

$password?=?"password";
$iterations?=?1000;
//?使用?openssl_random_pseudo_bytes(),random_bytes(),或者其他合適的隨機數(shù)生成函數(shù)
//?來生成隨機初始向量
$salt?=?openssl_random_pseudo_bytes(16,?$cstrong);
$hash?=?hash_pbkdf2("sha256",?$password,?$salt,?$iterations,?20);
echo?$hash;

為了安全起見,可以使用 PBKDF2 方法對密碼明文進行哈希運算后再存儲。 但是更好的方案是使用 password_hash() 函數(shù) 或者使用 CRYPT_BLOWFISH 算法調(diào)用 crypt() 函數(shù)。

相關(guān)頁面

crypt()?- 單向字符串散列

hash()?- 生成哈希值 (消息摘要)

hash_algos()?- 返回已注冊的哈希算法列表

hash_init()?- 初始化增量哈希運算上下文

hash_hmac()?- 使用 HMAC 方法生成帶有密鑰的哈希值

hash_hmac_file()?- 使用 HMAC 方法和給定文件的內(nèi)容生成帶密鑰的哈希值

openssl_pbkdf2()?- 生成一個 PKCS5 v2 PBKDF2 字符串




向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI