aes-encryption.com
繁體中文

AES · GCM / CBC / CTR

AES IV 與 nonce:長度、唯一性和儲存

理解 GCM nonce、CBC IV 與 CTR 計數器的不同要求,以及還原時應保留哪些參數。

術語取決於模式

GCM 用 nonce,CBC 用初始化向量,CTR 用初始計數器塊。介面統一歸為 IV / nonce / counter,但使用規則不同:本工具 GCM 為 12 位元組,CBC/CTR 為 16 位元組。應數解碼後的位元組,而不是 Base64 字元。

IV/nonce 通常不屬於秘密金鑰,需要儲存以供解密,並滿足對應模式的產生要求。隱藏 IV 不能修復重用、弱金鑰或沒有認證的問題。

新參數與重用風險

同一 GCM 金鑰不能重複 nonce;CBC 需要不可預測 IV;CTR 應避免相同金鑰下計數器塊重複。工具預設為原始金鑰加密產生新參數,只有明確開啟相容手動輸入才使用已有值,密碼模式每次另產生 salt 與 nonce。

手動值適合標準向量和復現已有系統,不應複製成生產固定值。工具不知道金鑰在其他地方的完整使用歷史,因此無法保證你手填的 nonce 從未出現過。

編碼和長度例子

12 位元組 GCM nonce 對應 24 個 Hex 字元或 16 個標準 Base64 字元;16 位元組 CBC IV 對應 32 個 Hex 字元或含填充的 24 個 Base64 字元。把 Hex 文字當 UTF-8 輸入會產生不同位元組,先確認編碼再處理長度錯誤。

CTR 固定低 64 位計數,並拒絕輸入導致的溢位。只知道初值有 16 位元組,還不能知道另一個庫遞增的是哪部分。

參數與秘密分開儲存

密碼封裝公開儲存 nonce 和 salt,因為還原需要它們。檔名則放進內部記錄一同加密。原始模式參數下載包含 IV 與 AAD,不包含金鑰;請單獨保護金鑰,並保留準確的編碼標籤。

相關工具與閱讀

技術參考

更新於 2026 年 10 月 16 日

常見問題

IV 必須保密嗎?

通常不用,但必須符合所選模式規則,並在還原時可用。公開 IV 不代表可以重複 nonce。

密碼相同時可以複用 IV 嗎?

不要手動重用。密碼模式每次產生新的 salt 與 nonce,不提供固定 IV 選項。