查詢

sodium_crypto_aead_aes256gcm_encrypt()函式—用法及示例

「 對明文進行加密,並返回加密後的密文 」


函式名:sodium_crypto_aead_aes256gcm_encrypt()

適用版本:PHP 7.2.0以上

用法:此函式用於對明文進行加密,並返回加密後的密文。

語法:sodium_crypto_aead_aes256gcm_encrypt(string $plaintext, string $additional_data, string $nonce, string $key): string

引數:

  • $plaintext:要加密的明文字串。
  • $additional_data:附加的資料,可選引數,不參與加密計算,但會被包含在加密結果中。
  • $nonce:加密用的nonce(一次性隨機數)字串,必須是唯一的,長度為12位元組。
  • $key:加密金鑰字串,長度為32位元組。

返回值:返回加密後的密文字串,長度為與明文相同。

示例:

$plaintext = "Hello, world!";
$additional_data = "some additional data";
$nonce = random_bytes(SODIUM_CRYPTO_AEAD_AES256GCM_NPUBBYTES);
$key = random_bytes(SODIUM_CRYPTO_AEAD_AES256GCM_KEYBYTES);

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

echo base64_encode($ciphertext);

注意事項:

  1. 為了保證安全性,$nonce和$key應該是隨機生成的,並且在每次加密時都應該是唯一的。
  2. 密文的長度與明文相同,但不能從密文中恢復出明文的具體內容。
  3. 使用相同的$nonce和$key進行解密,可以得到原始的明文資料。
補充糾錯
熱門PHP函式
分享連結