函数名:sodium_crypto_box_seal()
适用版本:PHP 7.2.0及以上版本
函数描述:sodium_crypto_box_seal()函数用于对称加密一个消息,使其只能被私钥所有者解密。该函数使用公钥加密,私钥解密的方式进行加密。它适用于不需要进行密钥交换的场景。
用法:
string sodium_crypto_box_seal ( string $message , string $public_key )
参数:
- $message:要加密的消息,类型为字符串。
- $public_key:公钥,类型为字符串。
返回值:
- 返回一个加密后的字符串,该字符串只能由私钥持有者解密。
示例:
// 生成密钥对
$keyPair = sodium_crypto_box_keypair();
// 获取公钥和私钥
$publicKey = sodium_crypto_box_publickey($keyPair);
$privateKey = sodium_crypto_box_secretkey($keyPair);
// 要加密的消息
$message = "Hello, world!";
// 使用公钥加密消息
$encryptedMessage = sodium_crypto_box_seal($message, $publicKey);
// 使用私钥解密消息
$decryptedMessage = sodium_crypto_box_seal_open($encryptedMessage, $keyPair);
echo "原始消息:".$message."\n";
echo "加密后的消息:".$encryptedMessage."\n";
echo "解密后的消息:".$decryptedMessage."\n";
注意事项:
- 使用sodium_crypto_box_seal()函数加密的消息只能使用sodium_crypto_box_seal_open()函数解密。
- 在使用该函数之前,确保已经安装了libsodium扩展,并且PHP版本大于等于7.2.0。
- 密钥对的生成可以使用sodium_crypto_box_keypair()函数来实现。