在PHP中,對稱加密通常使用openssl_encrypt
和openssl_decrypt
函數。以下是配置對稱加密的步驟:
選擇加密算法:選擇一個加密算法,如AES-256-CBC。
生成密鑰:生成一個隨機的密鑰,用于加密和解密數據。
生成初始化向量(IV):生成一個隨機的初始化向量,用于加密和解密數據。IV應該是唯一的,但不需要保密。
加密數據:使用openssl_encrypt
函數加密數據。
解密數據:使用openssl_decrypt
函數解密數據。
以下是一個簡單的示例:
<?php
// 1. 選擇加密算法
$algorithm = 'AES-256-CBC';
// 2. 生成密鑰
$key = openssl_random_pseudo_bytes(openssl_cipher_iv_length($algorithm));
// 3. 生成初始化向量(IV)
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length($algorithm));
// 4. 加密數據
$plaintext = 'Hello, World!';
$ciphertext = openssl_encrypt($plaintext, $algorithm, $key, 0, $iv);
// 5. 解密數據
$decryptedText = openssl_decrypt($ciphertext, $algorithm, $key, 0, $iv);
echo 'Plaintext: ' . $plaintext . PHP_EOL;
echo 'Ciphertext: ' . bin2hex($ciphertext) . PHP_EOL;
echo 'Decrypted Text: ' . $decryptedText . PHP_EOL;
?>
注意:在實際應用中,您應該使用更安全的方法來生成密鑰和IV,例如使用openssl_random_pseudo_bytes
函數。同時,確保密鑰的安全存儲和傳輸。