在PHP中實現AES加密和解密可以使用 PHP 的 OpenSSL 擴展,以下是一個簡單的示例:
// 加密函數
function encrypt($data, $key, $iv) {
return openssl_encrypt($data, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);
}
// 解密函數
function decrypt($data, $key, $iv) {
return openssl_decrypt($data, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);
}
// 加密
$key = 'YourSecretKey';
$iv = random_bytes(16); // 隨機生成一個16字節的初始化向量
$data = 'Hello, World!';
$encrypted = encrypt($data, $key, $iv);
// 解密
$decrypted = decrypt($encrypted, $key, $iv);
echo '加密前:' . $data . PHP_EOL;
echo '加密后:' . base64_encode($encrypted) . PHP_EOL;
echo '解密后:' . $decrypted . PHP_EOL;
上面的示例中,首先定義了 encrypt
和 decrypt
兩個函數,分別用于對數據進行加密和解密。然后生成了一個 16 字節的隨機初始化向量,使用指定的密鑰對數據進行加密,并最后解密。
注意:在實際應用中,需要使用安全的方法來存儲和傳輸密鑰和初始化向量,以確保數據的安全性。