隨著資訊科技的不斷發展,加密技術越來越廣泛地應用於各個領域。其中,AES對稱加密技術是目前最常使用的加密演算法之一,它能夠保證資料的安全性,應用範圍廣泛。本篇文章將介紹如何使用PHP實現AES對稱加密技術。
一、什麼是AES對稱加密技術?
AES是Advanced Encryption Standard(高級加密標準)的縮寫,是目前應用最廣泛的對稱加密演算法之一。對稱加密是指加密和解密使用相同的金鑰,其原理就是將明文和金鑰進行複雜的異或運算、移位和代換等操作,得到密文。如果沒有金鑰,則無法解密。
二、PHP中使用AES對稱加密
1.載入openssl擴充功能並產生金鑰
在PHP中使用AES對稱加密,需要使用openssl擴充。可以在php.ini檔案中開啟此擴展,也可以在程式碼中使用以下程式碼來載入它:
extension=php_openssl.dll
產生加密和解密所需的金鑰需要使用openssl_random_pseudo_bytes()函數,如下所示:
$key = openssl_random_pseudo_bytes(16);
此函數產生16位元組的隨機數,用於加密和解密。
2.加密和解密
接下來,我們可以使用 openssl_encrypt() 和 openssl_decrypt() 函數對資料進行加密和解密。
下面是使用openssl_encrypt() 函數進行加密的程式碼範例:
$data = 'hello world'; $cipher = 'AES-128-CBC'; $ivlen = openssl_cipher_iv_length($cipher); $iv = openssl_random_pseudo_bytes($ivlen); $encrypted_data = openssl_encrypt($data, $cipher, $key, OPENSSL_RAW_DATA, $iv); $encrypted_data = base64_encode($encrypted_data . ':' . $iv);
解釋一下程式碼:
$encrypted_data = base64_decode($encrypted_data); $parts = explode(':', $encrypted_data); $decrypted_data = openssl_decrypt($parts[0], $cipher, $key, OPENSSL_RAW_DATA, $parts[1]);
$key = openssl_random_pseudo_bytes(16); $data = 'hello world'; $cipher = 'AES-128-CBC'; $ivlen = openssl_cipher_iv_length($cipher); $iv = openssl_random_pseudo_bytes($ivlen); $encrypted_data = openssl_encrypt($data, $cipher, $key, OPENSSL_RAW_DATA, $iv); $encrypted_data = base64_encode($encrypted_data . ':' . $iv); $encrypted_data = base64_decode($encrypted_data); $parts = explode(':', $encrypted_data); $decrypted_data = openssl_decrypt($parts[0], $cipher, $key, OPENSSL_RAW_DATA, $parts[1]); echo $decrypted_data;
hello world
以上是PHP實作AES對稱加密技術的詳細內容。更多資訊請關注PHP中文網其他相關文章!