我的工作项目是使用Jackson JSON序列化程序将一堆Java对象转换为字符串,以便将它们发送到REST服务.
其中一些对象包含敏感数据,因此我编写了自定义序列化程序来将这些对象序列化为JSON字符串,然后对其进行gzip,然后使用加密它们AES;
这会将字符串转换为字节数组,因此我在编解码器中使用Base64编码Apache commons器将字节数组转换为字符串.REST接口背后的自定义反序列化器可以反转此过程:
base64 decode -> decrypt -> decompress -> deserialize using default Jackson deserializer.
Base64编码增加了输出的大小(序列化中的gzip步骤旨在帮助改善这种增加),所以我检查了Google是否有更有效的替代方法,这使我进入了之前的堆栈溢出线程,将Ascii85编码提升为更有效的替代方案 -
Base64增加了33%的输出大小,Ascii85增加了25%的输出大小.
我找到了一些Java Ascii85实现,例如Apache pdfbox,但我对使用编码有点怀疑 - 似乎没有人使用或实现它,这可能只是意味着Base64具有更多的惯性,或者可能意味着Ascii85有一些不稳定的问题.
有没有人对此主题有更多了解?Ascii85有什么问题,这意味着我应该使用Base64吗?
有谁知道除了com.idataconnect.lib.ascii85codec java 项目之外的其他类似org.apache.commons.codec.binary.Base64类的项目吗?