先計算位元組,再計算字元
| 金鑰位數 | 位元組 | Hex 位數 | Base64 長度 |
|---|---|---|---|
| 128 | 16 | 32 | 24 |
| 192 | 24 | 48 | 32 |
| 256 | 32 | 64 | 44 |
Base64 長度包含標準填充。編碼只改變表示,不改變隨機熵。64 個 Hex 字元表示 32 位元組,與 64 個 UTF-8 字元通常不是同一段資料。
遵循接收方協定
接收方必須使用同一金鑰與演算法。把 AES-256 截短成 AES-128 不能保留相容性,單方面加長金鑰也不能升級已有密文。所有 AES 變體的分組大小仍為 128 位;模式、nonce、認證和金鑰管理同樣重要。
產生器用 crypto.getRandomValues 產生三種長度。原始 AES-192 明確使用相容後端,128/256 使用 Web Crypto;目標瀏覽器的 Worker、剪貼簿與下載仍需實際檢查。
UTF-8 長度實驗
八個中文字元可能佔 24 位元組,而不是八位元組。雖然這可構成 192 位位元組序列,但好記的詞不自動等於強隨機金鑰。工具按解碼後的位元組校驗,不會截斷、重複或補零。
協定要求原始金鑰時用隨機產生器;人類輸入密碼時選密碼模式,使用 salt 和工作量明確的 PBKDF2 衍生。把密碼直接填進原始金鑰框不會執行同樣的衍生。
儲存金鑰還不夠
原始金鑰之外還需儲存模式、nonce/IV、tag 佈局、AAD、編碼及填充或計數規則。參數與密文可一同記錄,金鑰應分開保護。更換金鑰時,仍需保留舊資料所依賴的舊金鑰;本站不管理金鑰庫存,也不還原丟棄的值。
相關工具與閱讀
技術參考
更新於 2026 年 10 月 16 日