PHP による AES 暗号化の実装方法
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は決められた長さのbyte列である必要があります。そうでない場合、エラーになります。実アプリケーションでは、暗号の安全性を上げるために、ランダムに生成したbyte列を鍵とIVに利用するのが推奨されます。