函数名称:sodium_crypto_box_secretkey()
函数描述:生成一个新的密钥对的私钥,用于Sodium扩展库中的加密和解密操作。
适用版本:PHP 7.2.0及以上版本。
用法:
生成新的密钥对的私钥:
$secretKey = sodium_crypto_box_secretkey();
这将生成一个新的私钥,并将其赋值给变量$secretKey。私钥是一个二进制字符串,可用于进行加密和解密操作。
保存私钥到文件:
file_put_contents('private.key', $secretKey);
将私钥保存到文件中,以便在后续的加密和解密操作中使用。
示例:
<?php
// 生成新的密钥对的私钥
$secretKey = sodium_crypto_box_secretkey();
// 保存私钥到文件
file_put_contents('private.key', $secretKey);
// 加载私钥
$secretKey = file_get_contents('private.key');
// 使用私钥进行加密和解密操作
$message = 'Hello, world!';
$nonce = random_bytes(SODIUM_CRYPTO_BOX_NONCEBYTES);
$publicKey = sodium_crypto_box_publickey_from_secretkey($secretKey);
$ciphertext = sodium_crypto_box($message, $nonce, $publicKey, $secretKey);
// 输出加密后的密文
echo 'Ciphertext: ' . base64_encode($ciphertext) . PHP_EOL;
// 使用私钥进行解密操作
$decrypted = sodium_crypto_box_open($ciphertext, $nonce, $publicKey, $secretKey);
// 输出解密后的明文
echo 'Decrypted: ' . $decrypted . PHP_EOL;
?>
上述示例中,首先使用sodium_crypto_box_secretkey()生成一个新的私钥,并将其保存到文件中。然后,加载私钥并使用它进行加密操作。最后,使用相同的私钥进行解密操作,输出解密后的明文。请注意,示例中还使用了其他Sodium扩展库中的函数,如sodium_crypto_box_publickey_from_secretkey()、sodium_crypto_box()和sodium_crypto_box_open()。