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 选项。