English | 简体中文 | 繁體中文
查询

sodium_crypto_aead_aes256gcm_decrypt()函数—用法及示例

「 使用AES-256-GCM解密经过AEAD(认证加密关联数据)加密的数据 」


函数名称:sodium_crypto_aead_aes256gcm_decrypt()

函数描述:该函数用于使用AES-256-GCM解密经过AEAD(认证加密关联数据)加密的数据。

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

语法:sodium_crypto_aead_aes256gcm_decrypt(string $ciphertext, string $additional_data, string $nonce, string $key): string|false

参数:

  • $ciphertext:要解密的密文数据,必须是一个字符串。
  • $additional_data:附加的认证数据,可选参数,必须是一个字符串。
  • $nonce:用于加密的nonce值,必须是一个字符串,长度为24字节。
  • $key:用于解密的密钥,必须是一个字符串,长度为32字节。

返回值:

  • 如果解密成功,则返回明文数据,类型为字符串。
  • 如果解密失败,则返回false。

示例:

$ciphertext = hex2bin('2b7e151628aed2a6abf7158809cf4f3c');
$additional_data = hex2bin('f0f1f2f3f4f5f6f7f8f9');
$nonce = hex2bin('0708090a0b0c0d0e0f10111213141516171819');
$key = hex2bin('000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f');

$plaintext = sodium_crypto_aead_aes256gcm_decrypt($ciphertext, $additional_data, $nonce, $key);

if ($plaintext === false) {
    echo "解密失败";
} else {
    echo "解密成功,明文数据为:" . $plaintext;
}

注意事项:

  • 为了确保安全性,应该使用随机生成的nonce和密钥,并且每次加密都使用不同的nonce。
  • 密钥和nonce的长度必须满足要求,否则会导致解密失败。
  • 附加的认证数据可选,但如果使用了,则在解密时必须与加密时使用的相同。
  • 如果解密失败,可能是由于密文数据被篡改或密钥不正确。
补充纠错
热门PHP函数
分享链接