AES256JNCryptor加密后的密文长度

从文档看(http://jncryptor.googlecode.com/svn/trunk/javadoc/index.html),加密后的密文不但包括AES密文,还包括了前后一共66个字节的附加信息。

由于采用了256位AES加密,使用了CBC模式加PKCS #5补齐,所以AES的密文字节长度 = (明文长度 +1) / 16 * 16(即比明文长度大的最小的16的倍数)。

AES256JNCryptor返回的密文长度则是在此基础上再加上66个字节。

返回的密文是二进制数据,无法直接显示。如果需要进一步编码为可显示字符串,则需进行BASE64编码或者十六进制编码。编码后的数据长度会进一步增加(BASE64是增长为4/3倍起的最小的4的倍数,十六进制编码是增长为2倍)。比如,对原文长度在32-47个字节之间的明文,经过AES256JNCryptor加密后的密文长度就是114个字节,再做一次BASE64编码转换成可显示字符就成了152个字符。

原明文长度  -> AES密文长度 -> BASE64编码长度
-------------------------------------------------------------------
 0-15 chars -> 82 bytes -> 112 chars
16-31 chars -> 98 bytes -> 132 chars
32-47 chars -> 114 bytes -> 152 chars
48-63 chars -> 130 bytes -> 176 chars
64-79 chars -> 146 bytes -> 196 chars
...
112-127 chars -> 194 bytes -> 260 chars
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值