AES Encryption Online 會使用 AES-256-GCM 將文字加密,並把結果打包成一個自給自足、可攜的 JSON 檔案,讓你可以儲存、複製或傳送,而解密動作完全在當前的瀏覽器分頁中執行。整個實作使用 PBKDF2-SHA-256,經過 210,000 次迭代,從你的密碼衍生出一把 256 位元金鑰,接著以全新的 12 位元組初始化向量與 128 位元驗證標籤進行加密。由於 AES-GCM 是經認證的加密機制,這個封包也能偵測竄改:只要有任何一個位元組被修改,或是密碼錯誤,解密就會失敗,絕不會顯示部分明文。Salt 和 IV 會以明文形式儲存在封包中,因為它們的作用是讓金鑰衍生具有唯一性、讓密文具有非確定性,而不是用來保密。整個管線透過瀏覽器的 Web Crypto API 執行,因此明文、密碼、衍生金鑰和解密結果從來不會被送到 Lizely。輸出是一個可攜的 JSON 封包,你可以將它儲存成副檔名為 .json 的檔案,之後在同一個頁面或任何能重現相同欄位配置、UTF-8 處理方式、PBKDF2 參數與 base64url 編碼的裝置上解密。

aes encryption online file
aes encryption online file

AES-256-GCM 線上加密的運作方式

AES-GCM 將 256 位元 AES 區塊加密器(以計數器模式運作)與 Galois 驗證欄位結合,在單一基元中同時提供機密性與完整性。正是 Galois 欄位產生了附加在密文後方的 128 位元標籤:當你解密時,瀏覽器會重新計算該標籤,並與封包內的值進行比對,任何不一致都會被視為嚴重錯誤,而不是輕微警告。這就是為什麼 AES Encryption Online 能夠保證「在錯誤密碼下不出現部分明文」:解密步驟要嘛以原始文字成功,要嘛拒絕執行。

PBKDF2 會在 AES-GCM 之前執行,把人類好記的密碼轉換成一把統一的 256 位元金鑰。此工具使用 SHA-256、一組 16 位元組的隨機 salt,以及剛好 210,000 次迭代來衍生該金鑰,而 salt 會儲存在封包內,使得日後能從同一組密碼重新建立出相同的金鑰。PBKDF2 並非密碼強度的替代品,它只是提高每次猜測的成本。一段過短、重複使用、已外洩或可預測的 passphrase,會讓這層防禦瓦解,這正是為什麼介面強制要求最少 12 個 UTF-8 位元組,並建議從密碼管理器中取得一組獨特、高熵的 passphrase,而不是自行發明。

每次加密時,亂數都由瀏覽器產生。此工具每次執行都會請求一組全新的 16 位元組 salt 和全新的 12 位元組 IV,因此同一段明文在相同密碼下,每次都會產生不同的封包。這種非確定性正是用來隱藏等價性的手段:只能看到封包的觀察者,無法分辨兩則加密訊息是否包含相同的文字。AES-GCM 本身要求每把金鑰的 IV 必須唯一,而若透過編輯封包來重複使用舊的 IV,將會悄悄地破壞驗證機制,這就是為什麼 JSON 格式會將 salt、IV、密文與標籤一起凍結成一筆不可變的紀錄。

三個步驟在線上加密檔案

請依照下列步驟,使用 AES Encryption Online 產生一個經認證的 AES-256-GCM 檔案封包。

  1. 開啟 AES Encryption Online 工具,選擇 Encrypt 模式。在輸入區域中輸入或貼上你的明文,並輸入一組至少 12 個 UTF-8 位元組的唯一密碼,理想上是來自可信密碼管理器的高熵 passphrase。點擊加密動作,以新產生的 salt 與 IV 執行 AES-256-GCM 加密。
  2. 從輸出區域複製完整的 JSON 封包,並依照原樣儲存,包括每一個欄位和每一個 base64url 字元。請透過另一個安全管道保存密碼,例如密碼管理器的保險庫、頻外訊息,或密封的紙本筆記;絕對不要把密碼與封包放在同一個檔案或訊息中。
  3. 若要解密,請回到該工具,選擇 Decrypt 模式,並將 JSON 封包原封不動地貼到輸入區域。輸入加密時使用的同一組密碼,然後執行解密動作。若密碼正確且封包未被竄改,原始明文將會被還原。若有任何錯誤,工具會回報驗證失敗,並且不會回傳任何明文。

請將封包視為一個單一的不可分割物件。移除任何欄位、正規化空白字元、將 base64url 換成帶填充的 Base64,或將 IV 換成先前的值,都會導致驗證失敗,因為此工具在請 Web Crypto API 進行驗證與解密之前,會先檢查欄位標籤、數值限制、欄位語法、精確的 salt 與 IV 長度,以及最小密文長度。

JSON 檔案封包內部結構

輸出並非原始的二進位資料區塊,而是一份結構化的 JSON 文件。每個欄位都有明確定義的意義,合在一起便能告訴任何相容的解密端,如何精確地重建 AES 金鑰並驗證標籤。

欄位用途格式
version格式識別碼整數,值為 1
algorithm加密演算法宣告字串 AES-256-GCM
kdf金鑰衍生函式字串 PBKDF2-SHA-256
iterationsPBKDF2 迭代次數整數,值為 210000
salt用於金鑰衍生的隨機 saltBase64url,16 位元組
iv隨機初始化向量Base64url,12 位元組
ciphertext加密位元組加上 128 位元 GCM 標籤Base64url,至少 16 位元組

Base64url 不使用填充字元,遵循 RFC 4648,因此封包中不會出現標準 Base64 的 +、/ 或 = 字元。GCM 驗證標籤會附加在密文之後,而不是儲存在另一個欄位,這與 W3C Web Cryptography API 回傳 AES-GCM 輸出的方式一致。任何想解密封包的其他系統,都必須重現這種 UTF-8 處理方式、這組 PBKDF2 參數、這個標籤位置,以及這個精確的 base64url 字元集;密碼學元件本身是標準化的,但其外層的 JSON 配置則是此工具所獨有。

密碼規則與安全邊界

最少 12 個 UTF-8 位元組只是一個可用性的下限,而非強度的保證。以 210,000 次迭代運行的 PBKDF2-SHA-256 能拖慢暴力搜尋速度,但無法拯救一組被重複使用、外洩,或從小型字典中選出的 passphrase。若要獲得有意義的保護,請從 Password Generator 產生一組長而隨機的 passphrase,將它儲存在密碼管理器中,並把 JSON 封包視為其他任何經認證的檔案來對待:保存在你信任的裝置上、你掌控的儲存媒體上,以及能逐位元組保留它的傳輸管道上。

密碼學的邊界僅止於這個頁面。能讀取 DOM 的瀏覽器擴充功能、遭到入侵的主機裝置、會記錄過去剪貼內容的剪貼簿管理器、螢幕擷取程式、共用電腦,以及任何會接收貼上封包的系統,全都落在 AES-GCM 保護範圍之外。此工具只是一個單一轉換:它把一組密碼與一段明文轉換成一個經認證的封包,或是把一個封包與一組密碼轉換回明文。它不會管理工作階段、保存庫或跨次造訪的金鑰,沒有密碼復原、沒有託管,也不存在伺服器端金鑰資料。當周圍裝置不再受信任時,請清除頁面上的敏感內容並關閉分頁。

AES Encryption Online 不適合的用途

此工具是為短小的文字片段、展示用途、雙方已共享密碼的可控交換,以及與文件化 JSON 配置的相容性實驗而設計。它不是託管式保存庫、企業級金鑰管理服務、加密備份系統,也無法取代經過審核的應用層密碼學設計。請以對待其他任何單一用途基元的方式來使用它:在範圍內有用、職責狹窄,且真實安全性仰賴周圍的工作流程。若要進行更廣泛的相容性工作,W3C Web Cryptography Level 2 規範說明了底層 AES-GCM 與 PBKDF2 基元在相容瀏覽器中的行為方式,而這正是本工具所遵循的契約。

在開始之前,請參考下表中的限制與能力,設定合理的期待。

使用情境適合 AES Encryption Online需要不同的系統
透過既有管道傳送一小段祕密可以,複製 JSON 封包,並透過頻外方式分享密碼不需要
加密數 MB 的檔案不行,僅設計用於文字片段具串流 AEAD 的檔案加密工具
復原忘記的密碼無復原、無託管具文件化復原流程的保存庫
與第三方 AES 工具互通僅在對方重現完全相同的 JSON 配置與 PBKDF2 參數時才行開放格式容器,例如 age、GPG 或 CMS 信封
在受規範的企業工作流程中執行不行,僅限瀏覽器且無狀態由 HSM 支援的金鑰管理服務

此實作已對照 NIST AES-GCM 向量進行驗證,包括一段空白明文驗證案例與一整個零區塊加密案例,且 base64url 測試案例遵循 RFC 4648。這些檢查證明所定義的轉換與封包不變式的行為符合文件所述;但它們並未認證瀏覽器、裝置、所選密碼、儲存位置,或圍繞此工具的更廣泛工作流程。

若想進一步了解,請參閱 AES-256 Encryption: Inside an Authenticated GCM Package

若想進一步了解,請參閱 AES Encryption Online Free: Encrypt Text in Your Browser