由于热爱爬虫,爱分析数据,几个月前在手机上通过抓包软件,抓到某资源app的大量请求,捕获各种类型的api接口,获取了大量json数据,而且可以直接利用。于是发挥了我python爬虫的那点知识,不断循环爬取数据保存到数据库,最后爬取了近4万条可用有价值的数据。上周末本想继续爬取更新一波,发现json传输的数据都加密了,于是对json加密产生了兴趣,本想把这种传输方式应用到java-web中,发现前端并不是好处理来自后台传过来的加密json数据(知识尚浅?),所以在此只记录下java后端对json数据加密解密处理的代码逻辑,以下两种方式来源在页尾已注明。
方式一:AES加密
1 | import org.apache.commons.codec.binary.Base64; |
方式二:三重加密算法
加密顺序:JSON字符串->Base64字符串->DES加密
Base64是一重加密
Base64里面我改进了算法,支持任意形式的字典表,所以这个地方是第二重加密
DES在Base64的基础上再次用秘钥加密。
有人问为什么还需要改Base64的字典表,其实原因就是DES的秘钥只能是8个字节,按照现在计算机的处理速度,24小时就破解了。
Base64的处理类,这里我把网上一个公开的类库做了改进,做了一个混排编码格式
1 | import java.io.ByteArrayOutputStream; |
Des加密算法
1 | import javax.crypto.Cipher; |
参考信息
https://www.cnblogs.com/yanchaohui/p/11005037.html
https://blog.csdn.net/f2006116/article/details/53222328