拓展公司自动化测试业务,某个接口需要用到加解密,业务是用java的AES/CBC/PKCS5Padding加解密,搬了各处砖,都不同的坑,只能在一次次踩坑报错中自力更生,分享出来以便大家别走我这样的路子,还有就是给自己做个标记,以后要用也好找~~~~
哈哈哈!!!
写得不好,请多多指教~
先普及一下AES加密
AES加密
AES加密是建立在DES加密不能满足破解难度而产生的。由比利时两位非常著名的密码学家Joan Daemen和Vincent Rijmen设计,选取了分组长度为128byte,密钥长度为128byte、192byte和byte比特的三个版本。 分组密码有五种工作体制:
- 电码本模式Electronic Codebook Book (ECB)
- 密码分组链接模式Cipher Block Chaining (CBC)
- 计算器模式Counter (CTR)
- 密码反馈模式Cipher FeedBack (CFB)
- 输出反馈模式Output FeedBack (OFB)
CBC模式
优点:
- 不容易主动攻击,安全性好于ECB,适合传输长度长的报文,是SSL、IPSec的标准。
缺点:
-
不利于并行计算;
-
误差传递;
-
需要初始化向量IV