查询

sodium_crypto_box_open()函数—用法及示例

「 解密已加密的消息,使用公钥加密和私钥解密的非对称加密算法 」


函数名称:sodium_crypto_box_open()

函数描述:sodium_crypto_box_open()函数用于解密已加密的消息,使用公钥加密和私钥解密的非对称加密算法。

适用版本:PHP 7.2.0及以上版本

语法:string sodium_crypto_box_open(string $ciphertext, string $nonce, string $keypair)

参数:

  • $ciphertext:加密的消息,以字符串形式传递。
  • $nonce:用于加密的随机数,以字符串形式传递。
  • $keypair:公钥和私钥的组合,以字符串形式传递。

返回值:解密后的原始消息,以字符串形式返回。如果解密失败,返回false。

示例:

// 定义公钥和私钥
$keypair = sodium_crypto_box_keypair();

// 获取公钥和私钥
$publicKey = sodium_crypto_box_publickey($keypair);
$privateKey = sodium_crypto_box_secretkey($keypair);

// 原始消息
$message = "Hello, world!";

// 用公钥加密消息
$nonce = random_bytes(SODIUM_CRYPTO_BOX_NONCEBYTES); // 生成随机数
$ciphertext = sodium_crypto_box($message, $nonce, $publicKey, $privateKey);

// 解密消息
$decryptedMessage = sodium_crypto_box_open($ciphertext, $nonce, $keypair);

// 输出解密后的原始消息
echo $decryptedMessage;

注意事项:

  1. 在使用sodium_crypto_box_open()函数之前,需要先生成公钥和私钥对,可以使用sodium_crypto_box_keypair()函数生成。
  2. 解密前需要确保传递正确的密文、随机数和密钥对。
  3. 解密成功后,返回的是原始消息的字符串形式。
  4. 如果解密失败,函数会返回false,需要对返回值进行检查。

更多信息和示例可以参考PHP官方文档:https://www.php.net/manual/en/function.sodium-crypto-box-open.php

补充纠错
热门PHP函数
分享链接