在PHP中,对称加密通常使用openssl_encrypt
和openssl_decrypt
函数。为了简化流程,你可以创建一个加密/解密函数,这样你就可以在代码中重复使用它。以下是一个简单的示例:
function encrypt($data, $key, $method = 'AES-256-CBC')
{
$ivLength = openssl_cipher_iv_length($method);
$iv = openssl_random_pseudo_bytes($ivLength);
$encrypted = openssl_encrypt($data, $method, $key, 0, $iv);
return base64_encode($iv . $encrypted);
}
function decrypt($data, $key, $method = 'AES-256-CBC')
{
$data = base64_decode($data);
$ivLength = openssl_cipher_iv_length($method);
$iv = substr($data, 0, $ivLength);
$encrypted = substr($data, $ivLength);
return openssl_decrypt($encrypted, $method, $key, 0, $iv);
}
使用这两个函数,你可以轻松地加密和解密数据:
$key = 'your-secret-key'; // 请确保密钥长度为16、24或32字节
$data = 'Hello, World!';
// 加密
$encryptedData = encrypt($data, $key);
echo 'Encrypted data: ' . $encryptedData . PHP_EOL;
// 解密
$decryptedData = decrypt($encryptedData, $key);
echo 'Decrypted data: ' . $decryptedData . PHP_EOL;
这个示例使用了AES-256-CBC加密方法,但你可以根据需要更改它。请注意,为了安全起见,你应该使用一个安全的密钥,并确保在安全的环境中存储它。