在PHP中实现对称加密算法可以使用openssl_encrypt
和openssl_decrypt
函数。以下是一个简单的示例:
// 加密函数
function encrypt($data, $key, $iv) {
$encrypted = openssl_encrypt($data, 'AES-256-CBC', $key, 0, $iv);
return base64_encode($encrypted);
}
// 解密函数
function decrypt($data, $key, $iv) {
$decrypted = openssl_decrypt(base64_decode($data), 'AES-256-CBC', $key, 0, $iv);
return $decrypted;
}
// 生成随机密钥和初始化向量
$key = openssl_random_pseudo_bytes(32);
$iv = openssl_random_pseudo_bytes(16);
// 要加密的数据
$data = 'Hello, World!';
// 加密数据
$encryptedData = encrypt($data, $key, $iv);
echo 'Encrypted Data: ' . $encryptedData . PHP_EOL;
// 解密数据
$decryptedData = decrypt($encryptedData, $key, $iv);
echo 'Decrypted Data: ' . $decryptedData . PHP_EOL;
在这个示例中,我们使用AES-256-CBC对称加密算法对数据进行加密和解密。首先生成一个随机的32字节密钥和16字节的初始化向量,然后使用encrypt
函数对数据进行加密,再使用decrypt
函数对加密的数据进行解密。最后输出加密和解密的结果。