PHP實作AES對稱加密技術
隨著資訊科技的不斷發展,加密技術越來越廣泛地應用於各個領域。其中,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);
解釋一下程式碼:
- ##第一個參數為需要加密的資料;第二個參數為加密演算法,可以選擇AES-128-CBC、AES-192-CBC或AES-256-CBC;第三個參數為金鑰;
- 第四個參數為加密方式,可選擇OPENSSL_RAW_DATA或OPENSSL_ZERO_PADDING;第五個參數為初始化向量(IV),用於增加加密演算法的強度。
$encrypted_data = base64_decode($encrypted_data); $parts = explode(':', $encrypted_data); $decrypted_data = openssl_decrypt($parts[0], $cipher, $key, OPENSSL_RAW_DATA, $parts[1]);
- 第一個參數為需要解密的資料;第二個參數為加密演算法,需要與加密時所使用的演算法相同;第三個參數為金鑰,需要與加密時所使用的金鑰相同;第四個參數為加密方式,需要與加密時所使用的方式相同;第五個參數為IV,需要與加密時所使用的IV相同。
$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中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

PHP 8.4 帶來了多項新功能、安全性改進和效能改進,同時棄用和刪除了大量功能。 本指南介紹如何在 Ubuntu、Debian 或其衍生版本上安裝 PHP 8.4 或升級到 PHP 8.4

CakePHP 是 PHP 的開源框架。它旨在使應用程式的開發、部署和維護變得更加容易。 CakePHP 基於類似 MVC 的架構,功能強大且易於掌握。模型、視圖和控制器 gu

登入 CakePHP 是一項非常簡單的任務。您只需使用一項功能即可。您可以記錄任何後台程序(如 cronjob)的錯誤、異常、使用者活動、使用者採取的操作。在 CakePHP 中記錄資料很容易。提供了 log() 函數
