Base64 是一种以 64 个可打印 ASCII(美国信息交换标准代码)字符为基数的位置编号系统。例如,该系统用于在电子邮件中显示二进制文件。所有 Base64 变体都使用字符 A-Z、a-z 和 0-9,总共 62 个字符,在实现系统中将缺少的两个字符替换为不同的字符。每三个原始字节用四个字符编码。
Base64 的历史
起初,只能通过电子邮件发送文本 (RFC 822)。随着时间的推移,除了传输文本之外,还需要传输音频、视频和图形文件、应用程序等。需要将二进制文件转换为文本。 Base64 被添加到当时现有的 UUE 编码 (Uuencode) 中,该编码用于 MIME(多用途 Internet 邮件扩展)规范 (RFC 2045-2049)。
MIME 是一种描述电子消息标题的标准。它的使用允许您在一封信中发送多个附件,例如存档和文本文件或 HTML 页面。一个支持 MIME 的电子邮件程序可以自由地从文本文件中提取存档、显示消息并解析 HTML 标记。例如,Outlook Express 会自动运行嵌入在 HTML 页面中的脚本。
Base64 诞生于七位、六位和三位字节的时代。旧编码不支持八位标准,因此,从旧系统传输到新系统时,部分信息会丢失。通常,在发送信件时,邮件服务器会丢失一个额外的、八分之一的比特,或者没有传输视频和图像。为了消除这些麻烦,开发了将二进制代码转换为文本的编码。最流行和最有效的系统是 Base64,由于它的简单性,它无处不在。
一种称为“打印编码”的算法于 1987 年首次被描述,Base64 于 1992 年 6 月出现。该系统的版本有Base16、Base32、Base36、Base58、Base85、Base91和Base122。后来的标准在 IT 领域得到积极使用。
有趣的事实
一些系统使用 Base58 对 URL 进行编码,这与 Base64 的不同之处在于最终文本中没有字符,人们可能会模棱两可地感知。不包括 0(零)、O(大写拉丁文 o)、I(大写拉丁文 i)、l(小拉丁文 L)。还排除了 +(加号)和 /(斜杠)字符,它们在对 URL 进行编码时会导致对地址的错误解释。
Base64 提供可逆和可恢复的编码。该服务将八位代码表的字符转换为在网络中和设备之间传输信息期间保留的字符。