函式名稱:sodium_crypto_kx_seed_keypair()
適用版本:PHP 7.2.0及以上版本
函式說明:sodium_crypto_kx_seed_keypair()函式用於根據種子生成一對公私鑰對,用於金鑰交換。
語法:sodium_crypto_kx_seed_keypair(string $seed) : string
引數:
- $seed: 一個32位元組的種子值,可以是隨機生成的或者是從其他來源獲得的。
返回值:返回一個包含公私鑰對的字串,長度為64位元組。
示例:
$seed = random_bytes(SODIUM_CRYPTO_KX_SEEDBYTES); // 生成一個32位元組的隨機種子
$keypair = sodium_crypto_kx_seed_keypair($seed); // 生成公私鑰對
$publicKey = sodium_crypto_kx_publickey($keypair); // 獲取公鑰
$privateKey = sodium_crypto_kx_secretkey($keypair); // 獲取私鑰
echo "Public Key: " . bin2hex($publicKey) . "\n";
echo "Private Key: " . bin2hex($privateKey) . "\n";
輸出示例:
Public Key: 8e9b2a9e5e1c0f1c5e0d9b8a7e6d5c4b3a2
Private Key: 9a8b7c6d5e4f3e2d1c0b9a8b7c6d5e4f3e2d1c0b9a8b7c6d5e4f3e2d1c0b9a8
注意事項:
- 生成的種子值必須是一個32位元組的隨機值,使用random_bytes()函式生成更為安全。
- 公私鑰對的長度為64位元組,需要使用bin2hex()函式進行十六進位制轉換才能進行顯示。