博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Kryo序列化进阶学习: 加密数据
阅读量:4005 次
发布时间:2019-05-24

本文共 1524 字,大约阅读时间需要 5 分钟。

        上一篇文章已经讲述了如何用Kryo对对象进行序列化和还原,但序列化后的数据在储存、传送的过程中需要加密处理,那么我们应该怎么做呢?

        Kryo自带了BlowfishSerializer序列化器可轻松对任何类进行加解密,看下面的应用吧:

        我们把testBean方法修改一下,加入Blowfish算法的加密:

public static void testBeanWithEncrypt() throws NoSuchAlgorithmException{		Kryo kryo=new Kryo();		byte[] key = KeyGenerator.getInstance("Blowfish").generateKey().getEncoded();		kryo.register(TestBean.class,//new BeanSerializer(kryo, TestBean.class));		 new BlowfishSerializer(new BeanSerializer
(kryo,TestBean.class), key)); //注册TestBean的
Serializer为BlowfishSerializer TestBean tb1=new TestBean(); tb1.setStrVal("test1"); tb1.setHashMapVal(new HashMap
()); tb1.getHashMapVal().put("k1", "v1"); tb1.getHashMapVal().put("k2", "v2"); int[] ints=new int[3]; ints[0]=1; ints[1]=2; ints[2]=3; tb1.setIntArray(ints); Output output=new Output(1, 1024); kryo.writeObject(output, tb1); output.close(); byte[] data=output.toBytes(); //[1, -4, -11, 19, 57, 102, 105, 3, -43, -24, -40, -34, 39, 84, 124, -73, 92, 13, 56, -128, -13, 107, -6, -98, -48, 40, -44, 111, -3, -73, -19, 68, -104, -40, -79, -4, 68, -79, -83, -16, -106, 117, 68, 57, 24, 3, 94, 1, 104, -104, 51, -82, -32, 85, 23, 91, 48] Input i=new Input(data); i.close(); TestBean tb2= (TestBean)kryo.readObject(i, TestBean.class); System.out.println(tb2.strVal); System.out.println(tb2.hashMapVal.get("k1")); System.out.println(tb2.intArray[2]); }
没看错,仅仅是把BeanSerializer换成BlowfishSerializer就可以了。 Kryo的BlowfishSerializer提供了源代码,你很容易将其衍生出AESSerializer或AESZipSerializer等等。

转载地址:http://hlzfi.baihongyu.com/

你可能感兴趣的文章
C++获取文件大小常用技巧分享
查看>>
未来5年大机遇:做贩卖多巴胺的超级玩家
查看>>
关于AIS编码解码的两个小问题
查看>>
GitHub 万星推荐:黑客成长技术清单
查看>>
可以在线C++编译的工具站点
查看>>
关于无人驾驶的过去、现在以及未来,看这篇文章就够了!
查看>>
所谓的进步和提升,就是完成认知升级
查看>>
昨夜今晨最大八卦终于坐实——人类首次直接探测到了引力波
查看>>
如何优雅、机智地和新公司谈薪水?
查看>>
为什么读了很多书,却学不到什么东西?
查看>>
长文干货:如何轻松应对工作中最棘手的13种场景?
查看>>
如何确保自己的Mac数据安全呢?这里有四个“小秘诀”
查看>>
如何用好碎片化时间,让思维更有效率?
查看>>
第一性原理:戳中问题本质的人是怎么思考的?
查看>>
No.147 - LeetCode1108
查看>>
No.148 - LeetCode771
查看>>
No.174 - LeetCode1305 - 合并两个搜索树
查看>>
No.175 - LeetCode1306
查看>>
No.176 - LeetCode1309
查看>>
FE:http状态码
查看>>