PHP AES加解密:用代码为数据加上保护的盾牌
warning:
这篇文章距离上次修改已过188天,其中的内容可能已经有所变动。
<?php
// 加密函数
function encrypt($data, $key) {
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc'));
$encrypted = openssl_encrypt($data, 'aes-256-cbc', $key, 0, $iv);
return base64_encode($iv . $encrypted);
}
// 解密函数
function decrypt($data, $key) {
$data = base64_decode($data);
$iv = substr($data, 0, openssl_cipher_iv_length('aes-256-cbc'));
$data = substr($data, openssl_cipher_iv_length('aes-256-cbc'));
$decrypted = openssl_decrypt($data, 'aes-256-cbc', $key, 0, $iv);
return $decrypted;
}
// 使用示例
$key = 'your-256-bit-secret'; // 256位密钥
$plaintext = 'Hello, this is a test.';
// 加密
$encrypted = encrypt($plaintext, $key);
echo "Encrypted: " . $encrypted . "\n";
// 解密
$decrypted = decrypt($encrypted, $key);
echo "Decrypted: " . $decrypted . "\n";
?>
这段代码提供了AES-256-CBC加密算法的加解密函数。使用openssl_random_pseudo_bytes
生成随机的初始化向量(IV),然后使用openssl_encrypt
和openssl_decrypt
进行加密和解密。加密后的数据使用base64_encode
进行编码,以便在存储和传输中可以安全处理二进制数据。
评论已关闭