查詢

sodium_crypto_aead_chacha20poly1305_decrypt()函式—用法及示例

「 使用ChaCha20-Poly1305演算法對密文進行解密,並返回解密後的明文 」


函式名稱:sodium_crypto_aead_chacha20poly1305_decrypt()

函式描述:該函式用於使用ChaCha20-Poly1305演算法對密文進行解密,並返回解密後的明文。

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

用法:

string sodium_crypto_aead_chacha20poly1305_decrypt(
    string $ciphertext,
    string $additional_data,
    string $nonce,
    string $key
)

引數:

  • $ciphertext:要解密的密文。
  • $additional_data:附加的認證資料(可選)。
  • $nonce:使用的一次性隨機數。
  • $key:解密所需的金鑰。

返回值:

  • 如果解密成功,則返回解密後的明文字串。
  • 如果解密失敗,則返回 false

示例:

$ciphertext = hex2bin('aabbccddeeff'); // 要解密的密文
$additional_data = 'example'; // 附加的認證資料
$nonce = random_bytes(SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_NPUBBYTES); // 生成隨機的一次性隨機數
$key = random_bytes(SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_KEYBYTES); // 生成隨機的金鑰

$plaintext = sodium_crypto_aead_chacha20poly1305_decrypt($ciphertext, $additional_data, $nonce, $key);
if ($plaintext === false) {
    echo '解密失敗';
} else {
    echo '解密成功:' . $plaintext;
}

注意事項:

  • 使用該函式之前,需要確保在 PHP 中已啟用 Sodium 擴充套件。
  • $additional_data 引數是可選的,如果不需要附加的認證資料,可以傳入空字串。
  • $nonce 引數需要使用隨機生成的一次性隨機數,長度為 SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_NPUBBYTES 位元組。
  • $key 引數需要使用隨機生成的金鑰,長度為 SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_KEYBYTES 位元組。
  • 如果解密失敗,函式將返回 false,需要根據返回值進行判斷。
補充糾錯
熱門PHP函式
分享連結