函式名: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);
注意事項:
- 為了保證安全性,$nonce和$key應該是隨機生成的,並且在每次加密時都應該是唯一的。
- 密文的長度與明文相同,但不能從密文中恢復出明文的具體內容。
- 使用相同的$nonce和$key進行解密,可以得到原始的明文資料。