查询

sodium_crypto_box_seal()函数—用法及示例

「 对称加密一个消息,使其只能被私钥所有者解密 」


函数名: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()函数来实现。
补充纠错
热门PHP函数
分享链接