在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加密算法對原始數據進行加密,然后將加密后的數據(二進制形式)轉換為十六進制字符串以便于顯示。接下來,我們使用相同的密鑰和初始化向量對密文進行解密,并將解密后的文本與原始文本進行比較。如果兩者相同,說明加密和解密操作是正確的。