函数名称: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()函数进行十六进制转换才能进行显示。