什么是base32编码?

What is base32 encoding?

关于如何实现base32编码或base32编码的规范,有足够的信息,但是我不理解它是什么,为什么我们需要它,以及主要的应用程序在哪里。有人能解释并给出关于使用的真实场景吗?谢谢。

克罗克福德基地32维基百科base32


与任何其他"仅限ASCII"编码一样,base32的主要目的是确保其编码的数据能够通过系统或协议进行传输,这些系统或协议对它们接受的字符范围有特殊限制,并且不会被修改。

例如,B32编码的数据可以传递到接受单字节字符输入或UTF-8编码字符串输入的系统,或者附加到URL,或者添加到HTML内容,而不会被损坏或导致无效的形式。base64(更常见)的使用原因完全相同。

B32比B64的主要优点是它更易于人类阅读。这并不是什么优势,因为数据通常是由计算机处理的,因此B32与B64相对稀少(这在空间上更有效)。

更新:这里有一个关于base64的问题:base64编码用于什么?


base32编码(和base64)编码的动机是在存储或传输系统中需要对不受限制的二进制文件进行编码,而存储或传输系统只允许某些形式的数据,如纯文本。示例包括通过URL、XML或JSON数据传递数据,这些数据都是纯文本格式,不允许或支持任意二进制数据。


除了以前的答案外,数字是32比64。对于相同的.pdf文件编码结果为:

base64.base32encode(content)=190400符号

base64.base64encode(content)=158668符号