AES-256-GCM 使用一把 256 位元金鑰、一個 96 位元 IV,以及一個 128 位元驗證標籤,而金鑰則是透過 PBKDF2-SHA-256 經過 210,000 次迭代從密碼衍生而來。本速查表整理了該 AES 加密線上工具的加密參數、JSON 封包格式與操作流程,讓您在需要查詢數值、執行加密,或對解密失敗進行除錯時,無需重新閱讀完整規格說明。該工具完全透過 Web Crypto API 在當前的瀏覽器分頁中執行;明文、密碼、衍生金鑰與解密結果皆停留在頁面上,絕不會上傳至任何伺服器。每次加密都會重新要求一組 16 位元組的 salt 與一組 12 位元組的 IV,這就是為什麼相同的明文與密碼每次會產生不同的封包。解密時,若封包的密碼錯誤或位元組遭到竄改,將會被拒絕,並在不洩漏任何部分明文的情況下回報失敗。以下各節將彙整相關數值、標示 JSON 欄位、逐步說明加密與解密流程,並點出最常見的陷阱,使本頁作為一份便捷的參考資料,而不是一份教學。

aes encryption online cheat sheet
AES 加密線上速查表:AES-256-GCM 參數

AES 一覽:關鍵數值

AES 加密線上工具所使用的加密參數,遵循以 NIST SP 800-38D 發布的 AES-GCM 標準,以及 W3C Web Cryptography 規範中所定義的金鑰衍生基元。下表記錄了工具所要求的精確數值、其計量單位,以及每個數值背後的來源標準。無論您正在串接外部互通機制,或是正在為解密失敗進行除錯,請以本表為第一站,因為本速查表中的其他所有章節都會回頭參照這些常數。

參數數值來源或用途
加密演算法Galois/Counter 模式下的 AES-256NIST SP 800-38D
金鑰長度256 位元NIST SP 800-38D
區塊長度128 位元NIST SP 800-38D
IV 長度96 位元 (12 位元組)NIST SP 800-38D,GCM 建議值
驗證標籤128 位元Web Crypto API 預設值
KDFPBKDF2 搭配 HMAC-SHA-256PKCS #5,透過 Web Crypto 使用
Salt 長度128 位元 (16 位元組)Web Crypto API
PBKDF2 迭代次數210,000為瀏覽器運算成本所做的調校
密碼最低長度12 個 UTF-8 位元組工具的輸入驗證
編碼字母表無填充的 base64urlRFC 4648,第 5 節

JSON 封包格式

加密輸出並非原始密文;而是一個自我描述的 JSON 物件,列出接收端解密所需的演算法、參數與 base64url 編碼欄位。此格式已加入版本控制,因此未來變更可在不破壞舊有封包的情況下遞增版本欄位。下表列出新封包中會出現的所有欄位、其數值或結構,以及簡短的用途備註,讓本章節在讀取或產出封包時也能兼作參考卡。

欄位數值或結構備註
v1格式版本。任何破壞性變更皆需遞增。
alg"AES-256-GCM"加密演算法宣告,於解密時進行比對。
kdf"PBKDF2-SHA-256"金鑰衍生函式宣告。
iter210000金鑰衍生過程中所使用的迭代次數。
saltbase64url 字串16 個隨機位元組;非機密。
ivbase64url 字串12 個隨機位元組;非機密。
ctbase64url 字串AES-GCM 密文串接 128 位元標籤。

使用線上工具進行加密與解密

以下流程對應 AES 加密線上 工具的操作步驟。請將 JSON 封包與密碼分別存放於不同管道,以便即使其中一者外洩,另一者仍受到保護;並請在將輸出視為正式密文之前,先進行快速健全性檢查。

  1. 開啟 AES 加密線上工具,並選擇「加密」動作。
  2. 在訊息欄位中輸入或貼上您的明文。此工具接受瀏覽器可呈現的任何 UTF-8 字串,包括含變音符號的字元、表情符號,以及多行備註。
  3. 輸入一組至少 12 個 UTF-8 位元組的唯一通關密語。請從值得信賴的密碼管理員取得,切勿重複使用既有字串或易於背誦的詞組。
  4. 執行加密。瀏覽器將透過 PBKDF2-SHA-256、salt 與 210,000 次迭代衍生一把不可匯出的 256 位元 AES 金鑰,接著使用全新的 12 位元組 IV 與 128 位元標籤,以 AES-GCM 進行加密。
  5. 完整複製產生的 JSON 封包,並將其存放於將接收密文的目的地,例如檔案、聊天訊息或 API 酬載。
  6. 透過獨立的安全管道傳遞密碼,例如密碼管理員的分享功能、頻外訊息或口頭交換。切勿將密碼貼入與封包相同的存放位置。
  7. 若日後需要開啟封包,請將工具切換至「解密」,貼上未經修改的 JSON,輸入相同的密碼,然後執行解密。若密碼錯誤或任何位元組遭到竄改,驗證將失敗,不會回傳任何明文。

導致解密失敗的陷阱

大多數解密失敗是由一組可預測的小錯誤所引起。當封包無法開啟時,請將下列清單視為快速的疑難排解參考,在假設加密演算法本身損壞或密碼已遺失之前,先修正其中的問題。

  • 貼上了帶填充的 Base64 字串,而非無填充的 base64url。封包使用符合 RFC 4648 且無填充的 base64url;若將其轉換為帶填充的標準 Base64,將在呼叫 Web Crypto 之前即無法通過驗證。
  • 修剪空白字元是允許的,但重寫欄位名稱、刪除欄位或重新排列數值則不被允許。嚴格的驗證步驟會在嘗試驗證之前,先檢查標籤、數值限制、欄位語法,以及 salt 與 IV 的精確長度。
  • 重複使用舊的 IV 或 salt 來重現封包。AES-GCM 要求每把金鑰使用唯一的 IV,因此工具每次執行都會產生全新的數值,重複使用的 IV 將會被拒絕。
  • 選擇過短或重複使用的密碼。PBKDF2 能提高猜測的成本,但無法將外洩或低熵的通關密語轉化為強密碼,因此保護下限取決於密碼品質,而非迭代次數。
  • 將密碼貼入與封包相同的管道。一旦兩者經由相同的管道外洩,不論底層使用何種加密演算法,加密都將無法提供實質的機密性。
  • 將此工具視為代管式的密碼保管庫。本工具沒有帳號、沒有還原機制,也沒有託管機制;密碼一旦遺失,封包即將消失,這是設計上的考量。

線上 AES 工具的適用情境與不適用情境

AES 加密線上工具專為小型文字片段、受控交換、展示,以及需要雙方約定採用此特定 JSON 封包格式的相容性測試而設計。它非常適合用於透過支援程式碼區塊的聊天服務傳送一次性秘密、在支援單據中附加加密備註、與參考實作進行行為比對,或是用於教學示範 AES-GCM 封包在實務中的配置方式。當外部系統必須重現相同的輸出時,本工具亦有所助益:只要該系統在 UTF-8 處理、PBKDF2 參數、AES-GCM 標籤位置、base64url 編碼與 JSON 欄位格式上與本工具一致,即可在無需任何伺服器端金鑰管理的情況下,與此處產生的封包互通。

本工具無法取代代管式保管庫、企業金鑰管理服務,或經過審核的應用層級加密設計。瀏覽器擴充功能、受感染的裝置、剪貼簿管理程式、螢幕擷取功能,以及共用電腦皆處於密碼學邊界之外,因此當周邊裝置不被信任時,應清除敏感內容並關閉分頁。對於大型檔案、受法規規範的資料,或長期保存的秘密的靜態加密,請使用具備稽核儲存、硬體背書金鑰與書面還原程序的專用系統。請將本速查表視為上述參數與流程的快速查閱參考;若需要安全審查的正式措辭,請參閱底層的 NIST 與 W3C 規範。

若您正在權衡各種選項,ASCII 碼轉換速查表:十進位快速參考對此有詳細說明。

若您正在權衡各種選項,Base64 轉十六進位速查表:RFC 4648 快速參考對此有詳細說明。