AES Encryption Online 會將大量文字包裝成一個 AES-256-GCM JSON 套件,使用從你的密碼衍生的 256 位元金鑰進行加密,並讓你在不上傳任何字元的情況下複製結果。每次執行都會以全新的 16 位元組隨機 salt 與全新的 12 位元組隨機初始化向量 (IV) 開始,透過 210,000 次 PBKDF2-SHA-256 迭代處理密碼,並將密文與一個 128 位元鑑別標籤封入一個有版本編號的 JSON 封套中。整個流程透過瀏覽器的 Web Crypto API 執行,因此明文、密碼、衍生金鑰與解密結果都會保留在當前頁面上。正是這樣的組合,讓這個工具適用於冗長段落、設定 blob、程式碼片段、API 權杖,以及其他以多位元組計算、不便透過需要上傳或帳號的工具處理的輸入。由於 JSON 套件以明文形式攜帶 salt、IV 與已鑑別的密文,接收者只需要未經變動的套件文字與相符的密碼,即可還原原始訊息——沒有獨立的金鑰檔、沒有伺服器備份,也沒有還原流程。

aes encryption online large text
AES Encryption Online 大量文字版:批次輸入指南

瀏覽器 AES 加密中,什麼算是「大量文字」

對一個以瀏覽器為基礎的加密工具來說,「大量文字」通常從隨意複製貼上開始感到不便的門檻起算:數 KB 的散文、多頁日誌、設定區塊、SQL 傾印、堆疊追蹤、JSON 文件、一組 API 金鑰清單。該頁面並未公布字元上限,但實際可用範圍取決於輸入區的大小、JavaScript 執行階段可用的裝置記憶體,以及接收者是否願意在不做任何更動的情況下,將整個 JSON 套件貼回。

對大多數工作流程而言,UTF-8 文字大約 100 KB 以下的輸入通常都算順暢;只要瀏覽器能將多位元組輸入保存在單一字串中,就能正常運作,在桌機上這個上限通常遠高於使用者的閱讀工作負載。重點在於,這個工具不會對輸入進行切塊、分割或串流處理。你放進明文方塊中的所有內容,都會成為單一 AES-256-GCM 加密的單一明文,結果就是一個 JSON 套件。內部沒有分塊、沒有多區塊格式,解密端也沒有重新組裝的步驟。

AES-256-GCM JSON 套件內部結構

輸出是一個結構化的 JSON 物件,而不是扁平的 Base64 字串。對於大量文字來說,這個選擇很重要:你輸入的每個位元組都必須完整往返,而自我描述的容器讓驗證、複製與稽核都更加容易。

欄位類型用途
v整數 (1)格式版本,固定為 1
alg"AES-256-GCM"宣告的加密演算法
kdf"PBKDF2-SHA-256"金鑰衍生函式
iter整數 (210000)PBKDF2 迭代次數
saltbase64url 字串16 位元組的隨機 salt
ivbase64url 字串12 位元組的隨機初始化向量
ctbase64url 字串已鑑別的密文,包含 128 位元 GCM 標籤

這些欄位會宣告此套件所依賴的所有加密決策:演算法、KDF、迭代次數,以及使每次加密獨特的隨機值。ct 欄位承載的是附加 GCM 標籤的密文,這正是 Web Crypto 的 subtle.encrypt 所回傳的形式;這種擺放方式屬於合約的一部分,而非任意選擇。

參數數值
加密演算法Galois/Counter 模式下的 AES-256
金鑰長度256 位元
Salt每次加密重新產生 16 位元組
IV每次加密重新產生 12 位元組
鑑別標籤128 位元
KDFPBKDF2-HMAC-SHA-256
PBKDF2 迭代次數210,000
Base64 變體無填補的 base64url
處理位置瀏覽器 Web Crypto API

這種結構會對大量文字帶來兩個後果。首先,套件本身會比明文大:base64url 的額外負擔、JSON 封套,以及附加的 GCM 標籤都會增加位元組,而工具不會壓縮輸入。其次,由於 salt 與 IV 是以明碼儲存,任何看到套件的人都會知道演算法參數;唯一的秘密只有密碼。這正是預期的設計——擊敗確定性密文與金鑰重複攻擊的是隨機值的獨特性,而非機密性,這在 NIST SP 800-38D 中有明確規範。

逐步加密一大段文字

這個工作流程涵蓋從瀏覽器中的冗長明文,到準備好分享的自含式 JSON 套件的完整路徑。

  1. 在最新的 Chromium、Firefox 或 Safari 版本中開啟 AES Encryption Online。該工具需要 Web Crypto API,而每個現代瀏覽器都已內建。
  2. 選擇 Encrypt。介面會顯示一個明文方塊與一個密碼欄位;除此之外不需要任何設定。
  3. 將完整的大量文字——段落、JSON、日誌行、設定——貼上或輸入到明文區域。不要修剪或「清理」文字,因為每個位元組都會成為 AES-GCM 明文的一部分,任何更動都會改變密文與標籤。
  4. 輸入至少 12 個 UTF-8 位元組的密碼。來自可信密碼管理器的獨特高熵密碼組,是現實上合理的最低要求;PBKDF2 無法挽救一個過短、重複使用或已外洩的密碼。
  5. 執行加密。工具會產生全新的 16 位元組 salt 與全新的 12 位元組 IV,透過 210,000 次 PBKDF2-SHA-256 迭代衍生出一把不可匯出的 256 位元 AES 金鑰,並產生一個 128 位元的鑑別標籤與密文一同輸出。
  6. 複製完整的 JSON 套件。確保沒有任何欄位被省略、base64url 字串內部的空白未被更動,也沒有在需要 base64url 的位置以帶填補的標準 Base64 取代。
  7. 透過一個管道傳送套件,並透過另一個獨立且可信的管道傳送密碼。套件在傳輸過程中可以放心被讀取;唯一必須保密的部分就是密碼。

對於非常長的輸入,請給頁面一些時間完成。210,000 次迭代的 PBKDF2 刻意設計得較為耗時,而多位元組的明文仍然只會展開為一次加密呼叫,因此主要的等待時間來自金鑰衍生,而不是加密本身。最終結果是整段明文、不分塊,封裝成單一 JSON 物件。

解密一個大量文字套件

解密路徑與加密對稱,但附帶嚴格的驗證機制,這正是保護大量輸入免於遭到竄改的部分。

  1. 在同一個工具上選擇 Decrypt。
  2. 將整個 JSON 套件完整貼上,與收到時完全一致。不要標準化行尾結尾、不要使用會以非標準方式重寫欄位順序的 JSON 美化器,也不要將 base64url 字串轉換為帶填補的 Base64。
  3. 輸入相符的密碼。使用不同的密碼、遭到截斷的密碼,或其 UTF-8 形式與原始加密時不同的密碼,都會失敗。
  4. 執行解密。工具會檢查每個標籤、數值限制與欄位語法,驗證 salt 與 IV 的位元組長度,並在呼叫 Web Crypto 之前確認密文長度足以容納 128 位元的 GCM 標籤。
  5. 讀取還原後的明文。若鑑別失敗,工具會回報失敗且不會顯示任何部分明文——這就是 GCM 的合約,也是防止攻擊者藉由長訊息的前幾個位元組是否正確解碼來探測內容的關鍵。

若驗證失敗,常見的原因包括 base64url 欄位內出現空白、ct 結尾多出等號、將舊套件的 IV 貼回新套件,或是手動複製時漏掉欄位。這些情況都無法在解密端修復;必須使用新套件重新執行加密,這也是為什麼 RFC 4648 中定義的 base64url 慣例對密文欄位的每個位元組都至關重要。

對大型輸入真正重要的密碼規則

210,000 次迭代的 PBKDF2-SHA-256 會提高猜測的成本,但並不會改變密碼本身的熵。工具強制要求至少 12 個 UTF-8 位元組,這只是防止極度薄弱輸入的下限,並非保證。由密碼管理器產生、由多個無關詞彙組成的密碼組,對於任何長度的明文都能輕鬆達標;而一個短小且重複使用的密碼,無論套件多大,都會從根本上削弱加密強度。

由於 salt 在每次加密時都是唯一的,使用相同密碼對相同長文字加密兩次,會產生兩個不同的套件。這是預期行為,也是防止觀察者透過比對密文來辨識相同明文的關鍵。salt 與 IV 會隨 JSON 一起傳送,不需要保密。

真正需要保密的是密碼,而工具絕不會將它寫入輸出、絕不會記錄它,也絕不會將它傳送至任何地方——Web Crypto 的衍生運算完全在瀏覽器分頁內執行。同時,這裡沒有還原、託管、帳號備份或伺服器端金鑰管理,因此一旦遺失密碼,套件便無法開啟。對於冗長輸入而言,這種損失是徹底的:每一個 KB 的明文都將永久無法存取。

工具未涵蓋的實際限制與威脅

加密的界線止於 Web Crypto 呼叫。有幾項現實風險存在於這個界線之外,而且隨著輸入變大,這些風險更為重要。

  • 瀏覽器擴充功能、剪貼簿管理工具、螢幕擷取工具以及共用電腦,可能在你輸入或複製時讀取明文或密碼,無論底層加密演算法有多強。
  • 檔案系統目的地與重新編碼附件的聊天服務,可能會標準化空白、折斷過長的行,或更動 JSON 格式,即使可見的位元組看似相同,也會損壞套件。
  • 這個工具不是受管的儲存庫、企業金鑰管理服務或加密備份系統;它是一個小型文字、受控交換用途的工具,具備標準化的加密核心。
  • 遭到入侵的端點無論使用哪種加密演算法,都可能從記憶體中外洩金鑰,因此分頁開啟期間,周邊裝置必須是可信的。

套件送出後,關閉分頁並清除剪貼簿是實際的收尾步驟。JSON 容器本身具有可攜性與可重現性,但它在實際環境中的安全性,取決於你為密碼選擇的傳輸管道、所使用裝置的完整性,以及每位接收者是否願意保持套件不變。如需一份將本工作流程與更廣泛方法比較結合的指南,請參閱 AES Encryption Online 批次套件逐步解說。

延伸閱讀:CRC32 Calculator 批次驗證:一次驗證多個輸入。