PHPでAES暗号化および復号化を実装する方法は何ですか?
PHPのopensslライブラリを使用すると、AESの暗号化および復号化を実現できます。以下はサンプルコードです:
function aesEncrypt($data, $key, $iv) {
$encrypted = openssl_encrypt($data, 'AES-128-CBC', $key, OPENSSL_RAW_DATA, $iv);
return base64_encode($encrypted);
}
function aesDecrypt($encryptedData, $key, $iv) {
$decrypted = openssl_decrypt(base64_decode($encryptedData), 'AES-128-CBC', $key, OPENSSL_RAW_DATA, $iv);
return $decrypted;
}
$key = '0123456789abcdef'; // 密钥,必须是16字节
$iv = '1234567890abcdef'; // 初始化向量,必须是16字节
$plainText = 'Hello, World!';
$encryptedData = aesEncrypt($plainText, $key, $iv);
echo 'Encrypted: ' . $encryptedData . "\n";
$decryptedData = aesDecrypt($encryptedData, $key, $iv);
echo 'Decrypted: ' . $decryptedData . "\n";
上記のコードにおける鍵と初期化ベクトル(IV)は、必ず16バイトの長さの文字列である必要があります。実際の使用に際しては、安全な鍵とIVを適切に生成してください。
PHPのopenssl拡張が有効になっていることを確認してください。php.iniファイルをチェックしたり、phpinfo()関数を実行することで確認できます。