要测试 PHP AES 加密,你可以使用 OpenSSL 扩展提供的函数。以下是一个简单的示例,展示了如何使用 OpenSSL 对字符串进行 AES-256-CBC 加密和解密,以验证加密和解密是否正常工作。
首先,确保你的 PHP 安装启用了 OpenSSL 扩展。然后,创建一个名为 aes_test.php
的文件,并在其中输入以下内容:
<?php
function aes_encrypt($data, $key, $iv) {
return base64_encode(openssl_encrypt($data, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv));
}
function aes_decrypt($data, $key, $iv) {
return openssl_decrypt(base64_decode($data), 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv);
}
$key = 'your-32-character-key-here'; // 确保密钥长度为 32 个字符
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('AES-256-CBC'));
$plaintext = 'Hello, World!';
$ciphertext = aes_encrypt($plaintext, $key, $iv);
echo 'Encrypted text: ' . $ciphertext . PHP_EOL;
$decryptedText = aes_decrypt($ciphertext, $key, $iv);
echo 'Decrypted text: ' . $decryptedText . PHP_EOL;
?>
将 $key
变量设置为一个 32 个字符的字符串,这是 AES-256 所需的密钥长度。运行此脚本后,你将看到类似以下的输出:
Encrypted text: <encrypted-string>
Decrypted text: Hello, World!
如果加密和解密过程正确,解密后的文本应与原始文本相同。请注意,这个示例仅用于演示目的,实际应用中你可能需要考虑更多的安全因素,例如密钥管理和错误处理。