AES 加密解密工具

專業級 AES 對稱加密,支援 6 種加密模式和 5 種填充方式

加密配置

輸入內容
字符數: 0
字節數: 0
轉換結果
字符數: 0
字節數: 0

什麼是 AES 加密?

AES(Advanced Encryption Standard,進階加密標準)是目前全球最廣泛使用的對稱加密演算法,被美國國家安全局(NSA)批准用於保護絕密級資訊。AES 由比利時密碼學家 Joan Daemen 和 Vincent Rijmen 設計的 Rijndael 演算法演變而來,於 2001 年由美國國家標準與技術研究院(NIST)正式發布,用於替代已經不再安全的 DES 演算法。 AES 採用分組加密方式,每組固定 128 位元(16 位元組),支援 128、192 和 256 位元三種金鑰長度,分別對應 AES-128、AES-192 和 AES-256 三個安全級別。金鑰越長,安全性越高,但加解密速度會略有下降。作為對稱加密演算法,AES 使用相同的金鑰進行加密和解密,這使得它在效能上遠優於非對稱加密演算法。 AES 的應用場景非常廣泛:在網路安全領域,TLS/SSL 協定使用 AES 保護網頁瀏覽和電子郵件傳輸;在儲存安全領域,BitLocker、FileVault 等磁碟加密工具採用 AES 加密使用者資料;在資料庫安全領域,許多資料庫系統支援 AES 欄位級加密;在物聯網領域,AES 也被廣泛用於裝置間的安全通訊。本工具支援 AES 的全部 6 種加密模式(ECB、CBC、CFB、OFB、CTR、GCM)和 5 種填充方式,滿足各種加密需求。

使用方法

基本操作

  1. 選擇加密模式(推薦 GCM 模式,提供加密和完整性驗證)
  2. 選擇填充方式(GCM/CFB/OFB/CTR 模式自動使用無填充)
  3. 選擇金鑰長度(256 位元安全性最高,128 位元效能最好)
  4. 輸入金鑰或點擊「產生隨機金鑰」自動建立
  5. 對於需要 IV 的模式,輸入或產生初始化向量
  6. 在左側輸入框輸入明文(加密)或密文(解密)
  7. 右側自動顯示加密或解密結果
  8. 點擊「複製」按鈕複製結果,或使用「交換」按鈕交換輸入輸出

加密模式說明

GCMGalois/Counter Mode,推薦使用。提供加密和認證雙重保護,無需填充,支援平行處理,適合網路傳輸和 TLS 協定
CBCCipher Block Chaining,經典模式。每個明文區塊與前一個密文區塊異或後再加密,需要填充和 IV,安全性好但不支援平行
CFBCipher Feedback,密碼回饋模式。將分組密碼轉為串流密碼,無需填充,適合串流資料加密,支援即時加解密
OFBOutput Feedback,輸出回饋模式。與 CFB 類似但錯誤不傳播,適合雜訊通道,無需填充
CTRCounter,計數器模式。使用遞增計數器產生密鑰串流,無需填充,支援完全平行加密,效能優異
ECBElectronic Codebook,不推薦使用。相同明文產生相同密文,會洩露資料模式,僅適用於加密單一資料區塊

填充方式說明

PKCS7PKCS#7 填充,最常用且推薦。自動填充 N 個值為 N 的位元組,解密時可準確移除,無歧義
ZeroPadding零填充。不足部分用 0x00 位元組填充,簡單但當資料末尾本身包含零位元組時會產生歧義
NoPadding無填充。要求資料長度必須是 16 位元組的整數倍,適用於串流模式或已知長度的資料
ISO7859ISO/IEC 7816-4 填充。第一個填充位元組為 0x80,後續為 0x00,廣泛用於智慧卡和金融領域
ANSIX923ANSI X.923 填充。填充位元組全為 0x00,最後一個位元組表示填充長度,常用於金融資料交換

使用技巧

  • 金鑰應使用密碼學安全的亂數產生,避免使用易猜測的字串
  • 每次加密都應使用不同的隨機 IV,切勿重複使用
  • GCM 模式的 IV 推薦使用 12 位元組(96 位元),效能和安全性最佳
  • 對於大量資料加密,CTR 和 GCM 模式支援平行處理,速度更快
  • 金鑰和 IV 可以選擇十六進位、文字或 Base64 格式輸入
  • 十六進位格式的金鑰長度:128 位元 = 32 字元,192 位元 = 48 字元,256 位元 = 64 字元

使用範例

基本加密

使用 CBC 模式加密中文文字

明文:Hello, 世界!
金鑰:0123456789abcdef0123456789abcdef
IV:fedcba9876543210fedcba9876543210
模式:CBC / PKCS#7 / 128位元
密文(十六進位):7a8b9c0d1e2f...

GCM 認證加密

使用推薦的 GCM 模式,提供加密和完整性保護

明文:敏感資料
金鑰:隨機產生 256 位元金鑰
IV:隨機產生 12 位元組
模式:GCM / 無填充 / 256位元
密文:IV 自動拼接在密文前面

檔案內容加密

加密設定檔或敏感資料

將檔案內容貼到輸入框
選擇 AES-256-CBC 模式
產生並儲存金鑰和 IV
加密後的內容可安全儲存或傳輸

常見問題 (FAQ)

Q: 應該選擇哪種加密模式?

A: 推薦使用 GCM 模式。它不僅提供加密,還能透過 GHASH 認證標籤驗證資料完整性,防止密文被篡改。GCM 是 TLS 1.3 的預設加密模式,被廣泛認為是最安全的 AES 模式。如果不需要完整性驗證,CBC 是經典選擇。CTR 適合需要高效能平行加密的場景。避免使用 ECB,因為它不安全且會洩露資料模式。

Q: 為什麼 ECB 模式不安全?

A: ECB 模式對相同的明文區塊產生相同的密文區塊,這意味著加密後的資料仍然保留原始資料的模式。最著名的例子是 ECB 模式加密的影像,雖然像素值被加密,但影像的整體輪廓仍然清晰可見。此外,ECB 模式容易受到重放攻擊和區塊替換攻擊。在實際應用中,應始終使用 CBC、GCM 等更安全的模式。

Q: 金鑰長度如何選擇?

A: AES-256 提供最高安全性,被美國國家安全局(NSA)批准用於絕密級(TOP SECRET)資訊保護,適合高安全需求場景。AES-192 提供中等安全性,適用於機密級資訊。AES-128 對於一般應用已經足夠安全,加解密速度略快於 256 位元。量子計算時代,AES-256 被認為能夠抵抗 Grover 演算法的威脅,推薦優先使用。

Q: 什麼是 IV?為什麼需要它?

A: IV(Initialization Vector,初始化向量)是加密演算法的額外輸入參數,用於確保相同明文在不同加密過程中產生完全不同的密文。如果沒有 IV,相同的明文總是產生相同的密文,攻擊者可以透過觀察密文模式推斷明文資訊。除 ECB 外,其他模式都需要 IV。CBC、CFB、OFB 模式需要 16 位元組 IV,GCM 推薦 12 位元組(96 位元)IV。IV 不需要保密,但每次加密必須使用不同的隨機 IV。

Q: 如何安全地儲存和傳輸金鑰?

A: 金鑰是加密系統的核心,必須嚴格保護。儲存方面:建議使用專業的金鑰管理系統(KMS)或硬體安全模組(HSM),避免將金鑰硬編碼在程式碼中或明文儲存在設定檔中。傳輸方面:必須透過安全通道(如 TLS/SSL)傳輸金鑰,避免透過電子郵件、聊天工具等不安全管道傳輸。金鑰輪換也是重要的安全實踐,定期更換金鑰可以降低金鑰洩露的風險。

Q: 加密後的資料為什麼比原文長?

A: 密文比明文長主要有三個原因:1)填充:分組加密模式需要將資料填充到 16 位元組的整數倍,即使只差一個位元組也會填充一整個區塊;2)IV:使用 CBC、GCM 等模式時,IV 通常會拼接在密文前面,增加 12-16 位元組;3)編碼:輸出格式(十六進位或 Base64)會增加資料體積,十六進位編碼會使資料翻倍,Base64 編碼增加約 33%。

Q: 這個工具的加密安全嗎?

A: 本工具使用 aes-js 函式庫在瀏覽器端執行標準的 AES 演算法,演算法實現是安全的。但需要注意:1)瀏覽器環境的安全性不如專業的加密裝置;2)金鑰可能透過瀏覽器擴充套件、主控台等方式洩露;3)本工具適合學習、測試和一般用途,生產環境建議使用專業的加密服務或函式庫。所有資料處理都在您的瀏覽器本地完成,不會上傳到伺服器。

Q: GCM 模式和其他模式有什麼區別?

A: GCM(Galois/Counter Mode)是認證加密模式,與其他模式的主要區別在於:1)GCM 同時提供加密和資料完整性驗證(認證),其他模式只提供加密;2)GCM 使用 12 位元組 IV,其他模式通常使用 16 位元組;3)GCM 加密時會在密文末尾附加認證標籤,解密時會驗證標籤以確保資料未被篡改;4)GCM 支援平行處理,效能優於 CBC。本工具的 GCM 實現將 IV 自動拼接在密文前面,解密時自動提取。

Q: 什麼情況下需要使用填充?

A: 分組加密模式(ECB、CBC)要求資料長度是 16 位元組的整數倍,因此需要填充。串流模式(CFB、OFB、CTR、GCM)將分組密碼轉換為串流密碼,不需要填充。如果選擇串流模式,本工具會自動設定為無填充。填充方式的選擇:PKCS#7 是最常用且無歧義的填充方式;ISO 7816-4 和 ANSI X.923 主要用於特定行業標準;零填充簡單但可能產生歧義。

Q: 如何驗證加密結果是否正確?

A: 驗證加密結果的最佳方法是使用相同的金鑰和 IV 進行解密,看是否能還原為原始明文。具體步驟:1)記錄加密時使用的金鑰、IV、模式和填充方式;2)將密文貼到輸入框,切換到解密模式;3)使用完全相同的金鑰、IV、模式和填充方式;4)如果解密結果與原始明文一致,說明加密正確。GCM 模式還提供額外的完整性驗證,如果密文被篡改,解密會失敗。