AES-256-CBC加密算法是常用的加密方式,而對應的解密方式是使用aesdecrypt函數來實現的。在PHP語言中,我們可以使用openssl_decrypt()函數來實現解密。
舉個例子,如果我們有一段加密后的字符串$data,使用aesencrypt函數加密過后,現在我們需要把它解密,那么我們可以按照如下的代碼來操作:
$key = 'my_secret_key'; $iv = 'my_secret_iv'; $method = 'aes-256-cbc'; $options = OPENSSL_RAW_DATA; $data = 'EFOze2yID6sfphfkp35yidRCuC3uxlCUYJxtU9iVAKzXXVNQ4PyEcnQIs4vm8U12'; $decrypted_data = openssl_decrypt( base64_decode($data), $method, $key, $options, $iv ); echo $decrypted_data; //輸出解密后的數據以上代碼中,$key和$iv這兩個值就是加密時使用的密鑰和向量。在使用aesdecrypt函數進行解密時,需要對這些值進行指定,才能準確的進行解密。
$key = '這是我的密鑰,不能告訴你'; $iv = '這是我的向量,你猜猜看'; $encrypted_data = 'arGQacYc+PfM9HptBv4lvK0J34k5ZB7dowVYQ4BPw0I='; $decrypted_data = aesdecrypt($encrypted_data, $key, $iv); echo $decrypted_data;如果我們想要加強加密的強度,可以根據需要生成更大的密鑰,這樣可以防止被黑客破解。同時在默認的情況下,openssl密鑰和向量是以十六進制編碼存儲的,如果我們需要使用base64編碼方式,需要將$method參數設置為'cbc',向openssl_decrypt函數傳遞一個base64_decode解碼后的值。
$key = 'my_secret_key'; $iv = 'my_secret_iv'; $method = 'aes-256-cbc'; $options = OPENSSL_RAW_DATA; $data = 'rQd6J6ktxlJRKavd/zfOSh5pqdX7jnWgQqj+zuIzMU4='; $decrypted_data = openssl_decrypt( base64_decode($data), 'cbc', $key, $options, $iv ); echo $decrypted_data; //輸出解密后的數據在解密時,要注意的是,在運用openssl解密前,一定要將使用aesencrypt函數加密后的字符串轉為十六進制編碼。 到這里,我們已經了解了如何使用aesdecrypt函數來解密加密后的數據了。對于加密和解密過程的了解,可以為我們打造出更加安全的系統提供有益的參考。