Base64编码与Ascii85编码

我正在工作的项目是使用Jackson

JSON序列化程序将一堆Java对象转换为String,以便将它们发送到REST服务。

其中一些对象包含敏感数据,因此我编写了自定义序列化程序以将这些对象序列化为JSON字符串,然后对其进行gzip,然后使用AES; 对其进行加密。

这会将字符串转换为字节数组,因此我在编解码器中使用Base64编码Apache

commons器将字节数组转换为字符串。REST接口背后的自定义反序列化器可逆转此过程:

base64 decode -> decrypt -> decompress -> deserialize using default Jackson

deserializer.

Base64编码增加输出的大小(以系列化gzip的步骤,旨在帮助改善这一增长),所以我检查了谷歌,看看是否有一个更有效的替代方案,这使我这个以前的计算器线程带来了ASCII85编码为更有效的替代方法-

Base64将输出的大小增加33%,将输出的大小Ascii85增加25%。

我发现了一些Java Ascii85实现,例如Apache pdfbox,但是我有点不愿意使用编码-

似乎几乎没有人在使用或实现该编码,这可能意味着Base64具有更大的惯性,或者可能意味着Ascii85存在一些问题。

有人对这个问题了解更多吗?Ascii85是否有任何问题,意味着我应该改用Base64?

回答:

Base64是 方式 更常见。在大多数情况下,大小的差异实际上并没有 那么 大,如果在HTTP级别(它将压缩base64)添加而不是

有效负载中添加,您可能会发现差异完全消失了。

Ascii85是否有任何问题,意味着我应该改用Base64?

我强烈建议您使用base64,因为它是 如此 广泛。这几乎是将二进制数据表示为文本的规范方法(当然,除非要使用十六进制)。

以上是 Base64编码与Ascii85编码 的全部内容, 来源链接: utcz.com/qa/427292.html

回到顶部