Base64 编码的原理
目录
警告
本文最后更新于 2023-06-09,文中内容可能已过时。
Base64 编码的原理
Base64 是一种编码方式,64 代表 64 个字符:A-Z,a-z,0-9,+,/
,也就是说用 Base64 是基于 64 个可打印字符来表示二进制数据的方法。
由于 $log_264=6$,所以在 Base64 中,用 6 Byte 即可完全表达 64 个字符中的任何一个,同时也意味着,一个 Base64 字符可以表达 6 比特二进制数据。
众所周知,ASCII 采用 8 比特表达 256 个字符,所以当我们对一段 ASCII 编码的文本做 Base64 编码时,会怎样呢?
- 将 ASCII 编码的文本转成二进制。
- 将二进制数据以 6 位为一组,根据 Base64 码表转换为 Base64 编码。
如果不了解 ASCII 编码请看:认识ASCII编码
下面例子展示了对 Man
这个单词做 Base64 编码:
Man
转换为二进制为 24 位($3*8=24$),对应 Base64 为 4 位($24/6=4$),正好可以被整除。如果不能被整除会怎样呢?
答:会用字符=
补位,比如下面这两个例子:
Base64 码表
Base64 的特点与实际应用
改变可读性
Base64 是一种全新的编码方式,既可以将「完全不可读」的二进制数据变为「可读」的数据,也可以将「完全可读」的 ASCII 编码变为「人类无法理解」的 Base64 编码字符串。
全部为可打印字符
Base64 编码用到的 64 个字符全部为可打印字符
,相比较 ASCII 编码存在不可打印字符,Base64 编码的字符串更适合在网络设备间传输。
占用空间更多
我们可以很容易意识到,表达同样的字符串,Base64 占用的空间更多。
更多与编码技术相关的博文:编码与解码 - 腐蚀脚本
转载声明:本文允许转载,原文链接:Base64 编码的原理 - 腐蚀脚本
参考:https://zh.wikipedia.org/wiki/Base64#.E5.9C.A8URL.E4.B8.AD.E7.9A.84.E5.BA.94.E7.94.A8
Buy me a coffee~
支付宝
微信