函式名稱:sodium_crypto_kdf_derive_from_key()
函式功能:這個函式用於從一個金鑰派生出一個新的金鑰。
適用版本:PHP 7.2.0及以上版本。
語法:sodium_crypto_kdf_derive_from_key(int $subkeyLength, int $subkeyId, string $context, string $key) : string
引數:
- $subkeyLength(必需):指定要派生出的子金鑰的長度(以位元組為單位)。
- $subkeyId(必需):指定要派生出的子金鑰的識別符號(一個整數)。
- $context(必需):指定派生過程的上下文(一個字串)。
- $key(必需):要派生的金鑰(一個字串)。
返回值:返回派生出的子金鑰(一個字串)。
示例:
$key = sodium_crypto_secretbox_keygen(); // 生成一個隨機的金鑰
$subkeyLength = 32; // 子金鑰長度為32位元組
$subkeyId = 1; // 子金鑰識別符號為1
$context = "example"; // 上下文為"example"
$subkey = sodium_crypto_kdf_derive_from_key($subkeyLength, $subkeyId, $context, $key);
echo bin2hex($subkey); // 輸出派生出的子金鑰的十六進位制表示
在上面的示例中,我們首先生成一個隨機的金鑰,然後使用sodium_crypto_kdf_derive_from_key()函式從該金鑰派生出一個子金鑰。子金鑰的長度為32位元組,識別符號為1,上下文為"example"。最後,我們使用bin2hex()函式將派生出的子金鑰轉換為十六進位制表示並輸出。