在PHP中,可以使用openssl扩展库来实现AES加密。
下面是一个示例代码,演示了如何使用AES-256-CBC算法进行加密和解密:
```php
function encrypt($data, $key, $iv) {
$cipher = "AES-256-CBC";
$options = OPENSSL_RAW_DATA;
$encrypted = openssl_encrypt($data, $cipher, $key, $options, $iv);
return base64_encode($encrypted);
}
function decrypt($encryptedData, $key, $iv) {
$cipher = "AES-256-CBC";
$options = OPENSSL_RAW_DATA;
$decrypted = openssl_decrypt(base64_decode($encryptedData), $cipher, $key, $options, $iv);
return $decrypted;
}
// 设置加密密钥和初始向量(IV)
$key = "0123456789abcdef"; // 256位(32字节)密钥
$iv = "abcdef0123456789"; // 128位(16字节)IV
// 要加密的数据
$data = "Hello, World!";
// 加密
$encryptedData = encrypt($data, $key, $iv);
echo "加密后的数据:" . $encryptedData . "\n";
// 解密
$decryptedData = decrypt($encryptedData, $key, $iv);
echo "解密后的数据:" . $decryptedData . "\n";
?>
```
请注意,这里的$key和$iv必须是指定长度的字节串,否则会抛出错误。在实际应用中,可以使用随机生成的字节串作为密钥和IV,以增加加密的安全性。