查询

sodium_crypto_secretbox_open()函数—用法及示例

「 解密通过sodium_crypto_secretbox()函数加密的密文 」


函数名称:sodium_crypto_secretbox_open()

函数功能:在使用libsodium扩展的PHP版本中,sodium_crypto_secretbox_open()函数用于解密通过sodium_crypto_secretbox()函数加密的密文。

函数参数:sodium_crypto_secretbox_open($ciphertext, $nonce, $key)

  • $ciphertext:要解密的密文,类型为字符串。
  • $nonce:用于加密的随机字符串,类型为字符串。
  • $key:加密密钥,类型为字符串。

返回值:解密成功时返回明文字符串,解密失败时返回false。

适用版本:该函数适用于PHP 7.2.0及以上版本,并且需要安装libsodium扩展。

示例代码:

// 加密密钥和随机字符串
$key = sodium_crypto_secretbox_keygen();
$nonce = random_bytes(SODIUM_CRYPTO_SECRETBOX_NONCEBYTES);

// 要加密的明文
$message = "Hello, World!";

// 使用密钥和随机字符串加密明文
$ciphertext = sodium_crypto_secretbox($message, $nonce, $key);

// 解密密文
$plaintext = sodium_crypto_secretbox_open($ciphertext, $nonce, $key);

if ($plaintext !== false) {
    echo "解密成功:".$plaintext;
} else {
    echo "解密失败!";
}

在上面的示例中,我们首先生成了一个加密密钥和一个随机字符串。然后,我们使用密钥和随机字符串对明文进行加密,并将加密后的密文存储在$ciphertext变量中。

接下来,我们使用相同的密钥和随机字符串调用sodium_crypto_secretbox_open()函数来解密密文。如果解密成功,将会返回解密后的明文字符串,并输出"解密成功:"加上解密后的明文。如果解密失败,将输出"解密失败!"。

注意:在使用sodium_crypto_secretbox_open()函数之前,需要先调用sodium_crypto_secretbox_keygen()函数生成一个加密密钥,并调用random_bytes()函数生成一个随机字符串作为nonce。

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