解决iOS、Android、Java加解密不一致的问题(DES、AES)

解决iOS、Android、Java加解密不一致的问题。

让人蛋疼的加密与解密。

这两天在做iOS和Android客户端与Java服务器端的数据加密与解密,一开始使用的是DES,但是觉得不够安全而且速度较慢,所以后来换成了AES。两种方式中,总是有两端生成的密文不一致的问题出现,经过蛋疼的调试,最终实现了加密结果一致;
现在大致记录一下经过,代码就不贴出了,如果有人需要直接留言好了;

DES在做加密时会出现自身可以加解密,但是密文不一样的情况,我做的iOS、Java、和网上找的各种DES加解密器,没有一个一样的。究其原因,是因为其密文是根据Key和IV向量生成,而这些工具的IV向量不同。当我把IV向量统一后,结果就一致了;
AES加密的密文不同,有几种可能:加密密钥长度不同(128、192、256),由于其加密方式对秘钥长度、明文的长度有限制(貌似是16位Byte的整数倍吧),所以针对其他加密内容需要填充字符,补填方式分为PKCS5Padding和PKCS7Padding,需要把这些都确定后才能保证密文一致;

推荐几个参考资料:DES:http://www.cnblogs.com/janken/archive/2012/04/05/2432930.html
AES加解密器:http://www.seacha.com/tools/aes.php

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值