You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AES加密等长明文是否始终输出相同长度的密文

AES加密等长明文的密文长度一致性问题解答

核心结论

只要你使用的加密配置(加密模式、填充规则、IV/随机数长度、是否附加认证标签等参数)固定不变,所有长度相同的明文加密后得到的密文长度一定是完全一致的。

具体逻辑说明

  • AES本身是128位(16字节)固定分组长度的块加密算法,所有加密操作都是按分组为单位处理的:
    • 对于ECB、CBC这类需要填充的传统分组模式:相同长度的明文经过同一种填充规则(比如PKCS5/PKCS7)处理后,得到的填充后总长度必然相等,加密生成的密文主体长度也完全一致。如果你的实现默认把初始化向量(IV)附在密文开头,固定长度的IV也不会改变整体密文长度的一致性。
    • 对于GCM、CCM这类带认证的AEAD加密模式:不需要对明文做填充,相同长度的明文加密后的密文主体长度和明文完全相等,附加固定长度的IV、认证标签后,总密文长度也固定不变。
  • 唯一可能出现等长明文加密后密文长度不同的情况,是你在加密流程中额外加入了可变长度的自定义元数据(比如长度不固定的关联数据AD、动态长度的随机数等),这种属于人为配置的差异,和明文本身的长度一致性无关。

示例参考

比如固定使用AES-256-CBC模式,PKCS7填充规则,IV固定为16字节且附在密文头部,明文长度统一为30字节:

30字节明文经过PKCS7填充后会补充2字节的填充内容,总长度为32字节(2个AES分组),加密后密文主体为32字节,加上头部16字节的IV,总密文长度固定为48字节,所有30字节的明文加密后都是这个长度。

内容的提问来源于stack exchange,提问作者htopalov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 21:24:02