PHP

php对称加密怎样判断

小樊
81
2024-12-03 17:18:25
栏目: 编程语言

在PHP中,对称加密通常使用openssl_encryptopenssl_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加密算法对原始数据进行加密,然后将加密后的数据(二进制形式)转换为十六进制字符串以便于显示。接下来,我们使用相同的密钥和初始化向量对密文进行解密,并将解密后的文本与原始文本进行比较。如果两者相同,说明加密和解密操作是正确的。

0
看了该问题的人还看了