您好,登錄后才能下訂單哦!
hash_pbkdf2?- 生成所提供密碼的 PBKDF2 密鑰導出
PHP4 | PHP5 | PHP7 |
---|---|---|
不支持 | V5.5.0+支持 | 支持 |
7.2.0 不再支持非加密的哈希函數(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 密鑰導出
參數 | 必需的 | 描述 |
---|---|---|
algo | 是 | 要使用的哈希算法名稱,例如:"md5","sha256","haval160,4" 等。 如何獲取受支持的算法清單,請參見?hash_algos()。 |
password | 是 | 要進行導出的密碼。 |
salt | 是 | 進行導出時所使用的“鹽”,這個值應該是隨機生成的。 |
iterations | 是 | 進行導出時的迭代次數。 |
length | 否 | 密鑰導出數據的長度。如果 raw_output 為 TRUE, 此參數為密鑰導出數據的字節長度。如果 raw_output 為 FALSE, 此參數為密鑰導出數據的字節長度的 2 倍,因為 1 個字節數據對應的 2 個 16 進制的字符。如果傳入 0,則使用所選算法的完整輸出大小。 |
raw_output | 否 | 設置為 TRUE 輸出原始二進制數據, 設置為 FALSE 輸出小寫 16 進制字符串。 |
如果 raw_output 設置為 TRUE, 則返回原始二進制數據表示的信息摘要, 否則返回 16 進制小寫字符串格式表示的信息摘要。
在以下情況下會產生 E_WARNING: 指定了未知的算法, iterations 小于等于 0, length 小于等于 0 或者 salt 過長(大于 INT_MAX - 4)。
$password?=?"password"; $iterations?=?1000; //?使用?openssl_random_pseudo_bytes(),random_bytes(),或者其他合適的隨機數生成函數 //?來生成隨機初始向量 $salt?=?openssl_random_pseudo_bytes(16,?$cstrong); $hash?=?hash_pbkdf2("sha256",?$password,?$salt,?$iterations,?20); echo?$hash;
為了安全起見,可以使用 PBKDF2 方法對密碼明文進行哈希運算后再存儲。 但是更好的方案是使用 password_hash() 函數 或者使用 CRYPT_BLOWFISH 算法調用 crypt() 函數。
crypt()?- 單向字符串散列
hash()?- 生成哈希值 (消息摘要)
hash_algos()?- 返回已注冊的哈希算法列表
hash_init()?- 初始化增量哈希運算上下文
hash_hmac()?- 使用 HMAC 方法生成帶有密鑰的哈希值
hash_hmac_file()?- 使用 HMAC 方法和給定文件的內容生成帶密鑰的哈希值
openssl_pbkdf2()?- 生成一個 PKCS5 v2 PBKDF2 字符串
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。