Base64 编码与 Ascii85 编码
我的工作项目是使用 Jackson JSON 序列化程序将一堆 Java 对象转换为字符串,以便将它们发送到 REST 服务。
其中一些对象包含敏感数据,因此我编写了自定义序列化程序,将这些对象序列化为 JSON 字符串,然后对其进行 gzip,然后使用AES
;
这会将字符串转换为字节数组,因此我在编解码器中使用 Base64 编码器将字节数组转换为字符串。REST 接口后面的自定义反序列化器可反转此过程:Apache commons
base64 decode -> decrypt -> decompress -> deserialize using default Jackson deserializer.
Base64
编码增加了输出的大小(序列化中的gzip步骤旨在帮助改善这种增长),所以我检查了Google,看看是否有更有效的替代方案,这使我找到了之前的stackoverflow线程,该线程将Ascii85编码作为更有效的替代方案 -
Base64
将 33% 添加到输出大小,将 25% 添加到输出大小。Ascii85
我发现了一些Java Ascii85实现,例如Apache pdfbox,但我对使用编码有点谨慎 - 似乎几乎没有人使用或实现它,这可能只是意味着Base64具有更多的惯性,或者这可能意味着Ascii85存在一些不稳定的问题。
有没有人知道更多关于这个主题?Ascii85 是否存在任何问题,这意味着我应该改用 Base64?