當前位置: 首頁> 最新文章列表> PHP實現AES加密詳細教程與示例代碼

PHP實現AES加密詳細教程與示例代碼

gitbox 2025-07-22

什麼是AES加密?

AES加密(高級加密標準)是一種廣泛應用的對稱加密算法,能有效保護敏感數據和信息安全。許多開發者在項目中選擇AES加密來保障數據傳輸和存儲的安全性。本文將介紹如何在PHP中實現AES加密,並提供實用代碼示例及最佳實踐。

PHP中實現AES加密的基本流程

在PHP中使用AES加密,關鍵在於確保環境支持OpenSSL擴展。實現過程主要包括生成密鑰和初始化向量(IV)、數據加密和數據解密三步。

生成密鑰和初始化向量

AES加密需要一個密鑰和一個初始化向量。密鑰長度可為128位、192位或256位,IV通常為128位。以下函數演示瞭如何生成它們:

 function generateKeyAndIV() {
    $key = openssl_random_pseudo_bytes(16); // 128位元密鑰
    $iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-128-cbc')); // 128位元IV
    return [$key, $iv];
}

數據加密

生成密鑰和IV後,可以調用OpenSSL函數對數據進行AES加密,示例如下:

 function encryptData($data, $key, $iv) {
    return openssl_encrypt($data, 'aes-128-cbc', $key, 0, $iv);
}

數據解密

解密過程使用與加密相同的密鑰和IV,調用OpenSSL的解密函數即可:

 function decryptData($encryptedData, $key, $iv) {
    return openssl_decrypt($encryptedData, 'aes-128-cbc', $key, 0, $iv);
}

完整示例代碼

下面是一個包含密鑰和IV生成、數據加密與解密的完整PHP示例:

 list($key, $iv) = generateKeyAndIV();
$data = "Hello, World!";
$encryptedData = encryptData($data, $key, $iv);
$decryptedData = decryptData($encryptedData, $key, $iv);
echo "原始數據: $data
";
echo "加密數據: $encryptedData
";
echo "解密數據: $decryptedData
";

總結

利用PHP的OpenSSL擴展實現AES加密操作相對簡便,關鍵在於確保密鑰和IV的隨機性以保障安全性。在開發過程中,重視數據加密能為應用程序增加一層重要的防護。希望本文的示例和說明能幫助你更好地理解和運用AES加密技術。