函数名: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进行解密,可以得到原始的明文数据。