当前位置: 首页 > 面试题库 >

Base64编码与Ascii85编码

蓟和煦
2023-03-14
问题内容

我正在工作的项目是使用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编码是用64(2的6次方)个ASCII字符来表示256(2的8次方)个ASCII字符,也就是三位二进制数组经过编码后变为四位的ASCII字符显示,长度比原来增加1/3。 使用 String a = "伦家是一个非常长的字符串"; //5Lym5a625piv5LiA5Liq6Z2e5bi46ZW/55qE5a2X56ym5Liy String encode = Base64.en

  • Go提供了对base64编码和解码的内置支持 package main // 这种导入包的语法将默认的base64起了一个别名b64,这样 // 我们在下面就可以直接使用b64表示这个包,省点输入量 import b64 "encoding/base64" import "fmt" func main() { // 这里是我们用来演示编码和解码的字符串 data := "abc12

  • 问题内容: 这是我的代码,我不明白为什么解码功能不起作用。 请少有洞察力会很棒。 它给了我:[解码错误-输出不是utf-8] [解码错误-输出不是utf-8] 问题答案: 返回 最大 长度。 此长度对于调整缓冲区大小很有用,但是不会写入缓冲区的一部分,因此将不是有效的UTF-8。 您只需要使用函数返回的实际写入长度即可。

  • 本文向大家介绍php base64 编码与解码实例代码,包括了php base64 编码与解码实例代码的使用技巧和注意事项,需要的朋友参考一下 php base64 编码与解码详解 1.自定义规则方式编码和解码 实例 2.利用系统函数完成base64位的编码和解码 实例代码: 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

  • 主要内容:1 Java8 Base64编码解码的介绍,2 基本编码和解码,3 URL和文件名的编码解码,4 MIME,5 Base64的内部类,6 Base64的方法,7 Base64.Decoder的方法,8 Base64.Encoder的方法,9 Java Base64案例:基本编码和解码,10 Java Base64案例:URL编码和解码,11 Java Base64案例:MIME编码和解码1 Java8 Base64编码解码的介绍 Java提供了一个Base64类来处理加密。您可以使用提

  • Base64编码将二进制数据转换为文本格式,通过通信通道传递,用户可以安全地处理文本。 Base64也称为Privacy enhanced Electronic mail (PEM) ,主要用于电子邮件加密过程。 Python包含一个名为BASE64的模块,它包括两个主要功能,如下所示 - base64.decode(input, output) - 它解码指定的输入值参数,并将解码的输出存储为对