首页 文章

AES128-CBC加密能产生奇数长度的输出吗?

提问于
浏览
0

我正在尝试实现一个SOAP客户端,该客户端应该接收带有MTOM / XOP附件的消息(XML) . 邮件正文和附件使用单独的密钥加密 . 使用的加密算法是AES128-CBC . 主体是base64编码并且解密很好,但是附件是二进制的并且具有奇数长度(530字节,527字节等) .

我的问题是,服务器是否有可能搞乱加密?或者是否可以生成不是16的倍数的AES128输出?

2 回答

  • 1

    CBCCBC 模式下将始终生成16字节倍数的输出 .

    如果在CTR (Counter) mode)中使用 AES ,则它会生成与输入长度相同的输出 .

  • 0

    AES是一种分组密码,可以使用16字节块,一次只有16字节的数据 . 对于CBC模式,输入和输出必须是16字节的倍数 . 点击率模式没有此要求 .

    解决这个问题的方法是在加密之前向输入添加填充字节,并在解密后删除它们 . 这可以通过指定填充类型自动完成,通常为PKCS#7 padding .

相关问题