aes-encryption.com
繁體中文

AES · GCM / CBC / CTR

AES-GCM、CBC 與 CTR:認證和參數區別

對比 GCM 認證、CBC 填充及 CTR 計數規則,正確配置原始 AES 相容參數。

比較完整構造

模式本工具 IV / nonce填充認證
GCM12 位元組 nonce無128 位 tag
CBC16 位元組 IVPKCS7無
CTR16 位元組計數器,低 64 位計數無無

密碼模式固定使用 GCM。CBC 與 CTR 僅作原始金鑰相容,並顯示警告;這不是讓你用裸模式替換已有安全協定。

GCM 為什麼可能拒絕解密

GCM 驗證密文和 AAD 的 tag。金鑰、nonce、密文、tag 或 AAD 任一變化都可能認證失敗,此時不返回部分明文。工具輸出末尾帶 16 位元組 tag;目標系統分離儲存時,要正確拆分或合併,不能重複追加。

同一金鑰不可複用 nonce。工具預設每次產生新值,手動輸入只適合明確的互操作或標準向量實驗;不要把一次隨機值複製成永久預設 IV。

CBC、CTR 的失敗含義不同

CBC 需要不可預測 IV 和一致的填充方式。錯誤金鑰可能觸發填充失敗,但偶然通過填充不等於通過認證。CTR 沒有填充,用錯誤金鑰也可能直接返回位元組,不能證明內容完整。

CTR 還需匹配計數器推進方式。本工具固定低 64 位計數,並在輸入導致溢位前拒絕操作。對方即使給出同樣 16 位元組初值,若計數字段佈局不同,仍可能無法互操作。

相容前逐項記錄

記錄模式、金鑰位元組、IV/nonce、編碼、tag 位置、AAD,以及填充或計數長度,先使用公開資料測試。本版不提供 ECB、CFB、OFB。新任務應使用有認證的密碼 GCM 或經過審查的應用協定,不要自行設計 CBC 加校驗碼方案。

相關工具與閱讀

技術參考

更新於 2026 年 10 月 16 日

常見問題

CBC 沒有 tag 就一定是演算法壞了嗎?

CBC 是有使用前提的模式。裸 CBC 不認證資料,完整協定可能另加合適的完整性保護;本工具不會自動新增這些保護。

GCM 能用 PKCS7 嗎?

GCM 不使用 PKCS7。額外新增或去掉填充會改變明文,可能破壞相容性。