在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,以增加加密的安全性。