AES 加密線上工具是一個基於瀏覽器的工具,使用至少 12 個 UTF-8 位元組的密碼,透過 PBKDF2-SHA-256 金鑰衍生(210,000 次迭代)將明文轉換為 AES-256-GCM 加密的 JSON 套件。整個操作透過 Web Cryptography API 在本機執行:沒有任何內容被上傳,密碼、衍生的金鑰和解密後的輸出都保留在當前頁面上。對初學者來說,實際的重點在於:你輸入一段訊息和一個密碼,複製一個純文字套件,然後將該套件分享給能使用相同密碼再次開啟它的人。
本指南的其餘部分將逐步說明該套件實際包含的內容、為什麼 AES-256-GCM 是適合入門的模式、精確的加密和解密步驟、初學者最常犯的錯誤,以及這種瀏覽器端工具能為你做什麼、不能做什麼的界線。

AES 加密線上工具實際產生了什麼
當你點擊「加密」時,該工具會接收你的明文和密碼,並產生一個單一的 JSON 物件——不是二進位檔案,不是串流的 blob,就只是一個結構化的純文字套件。該套件內部包含重現完全相同金鑰以及日後解密相同位元組所需的參數。底層的密碼學元件是標準化的;周圍的欄位佈局則是此工具特有的。
該套件以 256 位元金鑰的 AES 為核心,採用 Galois/Counter Mode (GCM) 模式運作。GCM 是一種認證模式,這代表每個套件都帶有一個 128 位元的認證標籤,讓解密端能確認位元組未被修改且密碼正確。若沒有該標籤,攻擊者可以翻轉密文位元,而接收者會在不知情的狀況下讀到亂碼;有了該標籤,接收端會在任何部分明文顯示之前被告知認證失敗。
以下說明 JSON 套件包含哪些欄位,以及每個欄位的意義:
| 欄位 | 用途 | 備註 |
|---|---|---|
| version | 格式識別碼 | 本工具一律為 1 |
| cipher | 演算法標籤 | AES-256-GCM |
| kdf | 金鑰衍生標籤 | PBKDF2-SHA-256 |
| iterations | PBKDF2 工作因子 | 210,000 |
| salt | PBKDF2 的隨機 salt | 16 位元組,base64url,非機密 |
| iv | 隨機初始向量 | 12 位元組,base64url,非機密 |
| ciphertext | 經認證的密文 + 128 位元 GCM 標籤 | base64url,必須保持不變 |
Salt 和 IV 以明文形式出現在套件中,而這是刻意的設計。它們的角色是確保唯一性,而非保密。Salt 會改變衍生的金鑰,讓同一組密碼的兩次執行產生不同的金鑰。IV 會在相同金鑰下改變密文,讓同一段明文的兩次執行產生不同的套件。系統中唯一的機密是密碼,它永遠不會被寫入輸出中。
為什麼 AES-256-GCM 對初學者是安全預設
AES 本身是一個區塊加密法——由你的秘密金鑰驅動的 128 位元區塊排列組合。「模式」描述了該加密法如何套用在長度超過一個區塊的訊息上。AES 加密線上工具選擇 GCM,是因為 GCM 在單一基元中同時結合了機密性與認證性。256 位元的金鑰賦予 AES 寬廣的安全邊際,而 GCM 的 128 位元標籤則能阻止攻擊者悄悄調換密文區塊。
初學者常常選用那些標榜「AES 加密」卻未指明模式的工具。缺少的那一個字會徹底改變威脅模型。下表從實務層面突顯其對比:
| 特性 | AES-256-GCM(本工具) | 未認證模式(ECB/CBC/CTR) |
|---|---|---|
| 機密性 | 有 | 有 |
| 竄改偵測 | 內建 128 位元標籤 | 需要獨立的 MAC |
| 密碼錯誤時的反應 | 認證失敗,不顯示明文 | 解密仍會產出位元組(通常是亂碼) |
| 決定性風險 | 透過全新的隨機 IV 消除 | 相同的明文與金鑰可能洩漏等價關係 |
如果你看到任何初學者指南因為簡便性而推薦 ECB,請將其視為警訊。ECB 對每個區塊獨立加密,因此相同的明文區塊會變成相同的密文區塊,模式會透過加密結果顯現出來。相比之下,GCM 會將 IV 混入每一個區塊。
逐步加密你的第一則訊息
在支援 Web Cryptography API 的瀏覽器中開啟 AES 加密線上工具(任何現行的 Chromium、Firefox 或 Safari 版本皆可)。你會看到兩種模式:加密和解密。加密是適合的起點。
- 選擇「加密」。
- 在輸入區中輸入或貼上你想保護的明文。該明文會保留在當前頁面上。
- 輸入一組獨特的密碼。介面強制要求至少 12 個 UTF-8 位元組——意即 12 個瀏覽器會以 UTF-8 編碼的字元,基本上就是你打得出的任何文字。例如,從密碼管理器產生的一組由四個不相關字詞加上一個數字組成的 passphrase,能輕鬆達標且更難被猜中。
- 點擊「加密」動作。該工具會以 PBKDF2-SHA-256 經 210,000 次迭代衍生出一把不可匯出的 256 位元 AES 金鑰,產生全新的 16 位元組 salt 與全新的 12 位元組 IV,執行 AES-GCM,並產出 JSON 套件。
- 逐字複製完整的 JSON 套件。請勿正規化空白、重新排序欄位、轉換為標準 Base64,或刪除引號。
- 透過你常用的管道將套件傳給接收者,並透過另一條不同的管道傳送密碼——例如套件用電子郵件、密碼用電話,或套件在某個聊天室中、密碼在另一個獨立的一次性訊息服務中。
最後一點的重要性超過任何參數。密碼學只能保護其環節中最薄弱的一環;若使用同一條管道同時傳送兩者,密碼就會成為任何讀取套件者的輕易目標。
解密你收到的套件
當接收者——或是未來在另一台裝置上的你——打開該 JSON 時,解密端是對稱的。該工具會執行相同的 PBKDF2 運算,但使用套件中的 salt,而非產生新的 salt。
- 選擇「解密」。
- 貼上完整、未經更動的 JSON 套件。在實際呼叫 Web Crypto 解密常式之前,該工具會驗證標籤、數值限制、精確的 salt 長度 16 位元組、精確的 IV 長度 12 位元組、最小密文長度,以及 base64url 語法。
- 輸入加密時所使用的相同密碼。
- 點擊「解密」。Web Crypto 會以 128 位元 GCM 標籤認證該密文,唯有在所有檢查皆通過時,才會揭示明文。
若密碼錯誤,或套件在傳輸過程中即使被更動了一個位元組,Web Crypto 都會引發認證失敗。該工具不會顯示部分明文、不會給出猜測式的結果,也不會提供類似 CRC 的餘項;唯一的回應就是拒絕解密。請將此拒絕視為一個訊號:先重新核對密碼,其次才是套件。
初學者在處理 AES 套件時常犯的錯誤
AES-GCM 搭配 PBKDF2 是強大的基元組合,但基元無法拯救你免於工作流程的錯誤。以下是該工具本身的文件中最常標記的常見陷阱。
- 過短或重複使用的密碼。12 位元組的最低要求是為了引導使用者避開單一字詞,但一段 12 個字元且可被猜中的詞組其實並不安全。請使用由類似 密碼產生器之類的工具所產生的高熵值獨特 passphrase,並且絕不在不同套件間重複使用。
- 編輯 JSON 套件。將 JSON 美化排版、為 Base64 補上等號以修正格式,或移除看似多餘的欄位,都會破壞驗證。該格式是此工具專屬的,必須原封不動地傳遞。根據 NIST SP 800-38D,GCM 預期精確的 IV 長度與標籤位置;該工具在任何解密嘗試之前都會強制執行這兩項檢查。
- 同時傳送套件和密碼。用電子郵件同時寄送兩者、貼在同一個聊天室中,或存放在同一個雲端資料夾中,都會讓整體防護崩潰為單一破壞點。
- 對瀏覽器分頁的信任超越其界線。瀏覽器擴充功能、剪貼簿管理工具、螢幕擷取,以及共用電腦,都落在密碼學邊界之外。當周遭裝置不被信任時,請清除頁面上的敏感內容並關閉分頁。
- 將該工具視為保險庫。它是為小型文字片段、示範、受控交換和相容性實驗而設計的。它並非託管式金鑰管理服務、加密備份系統,也無法取代經過審閱的應用層密碼學設計。
AES 加密線上工具適用與不適用的場景
對初學者而言,誠實的定位是:AES 加密線上工具是一個教學與交換工具,而非保險庫。當你想封裝一段秘密字串、傳送給同樣開啟此頁面的人,並驗證 AES-256-GCM 搭配 PBKDF2 能在瀏覽器中產生可攜、已驗證的 JSON blob 時,請使用它。其實作已透過 NIST 的 AES-GCM 測試向量進行檢驗——包括空明文認證案例與全零區塊案例——因此底層的轉換行為符合標準所述。欄位編碼遵循 RFC 4648 的 base64url 變體,這也是為何傳統含填補字元的 Base64 無法正確往返轉換。
當你需要長期金鑰託管、檔案層級加密、團隊共用秘密,或還原保證時,請勿使用此工具。它不提供密碼重設、託管、稽核記錄或伺服器端備份,因為其架構刻意為本機端運作。密碼永遠不會離開你的頁面;因此該頁面也無法協助你取回密碼。
對大多數初學者而言,這樣的權衡是合適的:你能看見每一個參數、掌控每一個步驟,最壞的失敗情境不過是忘記密碼而必須重新傳送一個套件——這是一個乾淨且可理解的結果,而非某種無聲的密碼學錯誤。
若你在權衡各種選項,AES 加密線上工具免費、無需註冊:在你的瀏覽器中對此有詳細說明。
若你在權衡各種選項,字元代碼查詢入門:讀懂你的第一個 U+ 值對此有詳細說明。