在PHP中,对称加密通常使用openssl_encrypt
和openssl_decrypt
函数进行加密和解密操作。为了判断加密后的数据是否正确,可以将解密后的数据与原数据进行比较。以下是一个简单的示例:
<?php
// 密钥(确保密钥长度为16、24或32字节)
$key = 'your-secret-key';
// 初始化向量(确保IV长度与加密算法相匹配)
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc'));
// 原始数据
$plaintext = 'Hello, World!';
// 加密数据
$ciphertext = openssl_encrypt($plaintext, 'aes-256-cbc', $key, 0, $iv);
// 输出密文
echo 'Ciphertext: ' . bin2hex($ciphertext) . PHP_EOL;
// 解密数据
$decryptedText = openssl_decrypt($ciphertext, 'aes-256-cbc', $key, 0, $iv);
// 输出解密后的文本
echo 'Decrypted Text: ' . $decryptedText . PHP_EOL;
// 判断加密后的数据是否正确
if ($plaintext === $decryptedText) {
echo 'The encryption and decryption are correct.' . PHP_EOL;
} else {
echo 'The encryption and decryption are incorrect.' . PHP_EOL;
}
?>
在这个示例中,我们使用AES-256-CBC加密算法对原始数据进行加密,然后将加密后的数据(二进制形式)转换为十六进制字符串以便于显示。接下来,我们使用相同的密钥和初始化向量对密文进行解密,并将解密后的文本与原始文本进行比较。如果两者相同,说明加密和解密操作是正确的。