W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
(PHP 7 >= 7.2.0, PHP 8)
sodium_crypto_pwhash_str — 獲取 ASCII 編碼的哈希值
sodium_crypto_pwhash_str(string $password, int $opslimit, int $memlimit): string
使用 CPU 和內(nèi)存硬哈希算法以及隨機(jī)生成的 salt 以及內(nèi)存和 CPU 限制來生成適合密碼存儲的 ASCII 編碼哈希。
password
字符串;要為其生成哈希的密碼。
opslimit
表示要執(zhí)行的最大計算量。提高此數(shù)字將使函數(shù)需要更多的 CPU 周期來計算密鑰。有一些常量可用于根據(jù)預(yù)期用途將操作限制設(shè)置為適當(dāng)?shù)闹担磸?qiáng)度順序排列:SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE
、SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE
和 SODIUM_CRYPTO_PWHASH_OPSLIMIT_SENSITIVE
。
memlimit
函數(shù)將使用的最大 RAM 量(以字節(jié)為單位)。有一些常量可幫助您按大小順序選擇適當(dāng)?shù)闹担?strong>SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE
、SODIUM_CRYPTO_PWHASH_MEMLIMIT_MODERATE
和 SODIUM_CRYPTO_PWHASH_MEMLIMIT_SENSITIVE
。通常,這些值應(yīng)與匹配的 opslimit 值配對。
返回經(jīng)過哈希處理的密碼。
為了從相同的密碼生成相同的密碼哈希,必須使用相同的值 for 和。這些都嵌入在生成的哈希中,因此 包括驗證哈希值所需的所有內(nèi)容。這允許 sodium_crypto_pwhash_str_verify() 函數(shù)來驗證沒有 其他參數(shù)需要單獨(dú)存儲。opslimitmemlimit
示例 #1 sodium_crypto_pwhash_str() example
<?php
$password = 'password';
echo sodium_crypto_pwhash_str(
$password,
SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE,
SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE
);
以上示例的輸出類似于:
$argon2id$v=19$m=65536,t=2,p=1$oWIfdaXwWwhVmovOBc2NAQ$EbsZ+JnZyyavkafS0hoc4HdaOB0ILWZESAZ7kVGa+Iw
注意:哈希值是使用 Argon2ID 算法計算的, 提供對 GPU 和側(cè)信道攻擊的抵抗力。 與 password_hash() 函數(shù)相比, 沒有 salt 參數(shù)(自動生成 salt), 和 參數(shù)不是可選的。opslimitmemlimit
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: