php hash pbkdf2,PHP hash_pbkdf2 哈希(Hash)函数
PHP hash_pbkdf2 哈希(Hash)函數
發布時間:2020-08-06 09:09:47
來源:51CTO
閱讀:270
作者:web全棧
定義和用法
hash_pbkdf2?- 生成所提供密碼的 PBKDF2 密鑰導出
版本支持PHP4PHP5PHP7不支持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 字符串
總結
以上是生活随笔為你收集整理的php hash pbkdf2,PHP hash_pbkdf2 哈希(Hash)函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何启用iOS 16.4 RC版新增的通
- 下一篇: php管理智能dns,负载均衡之DNS轮