关于
认识 Base64 编码和解码,这是一个简单易用的在线工具,顾名思义,就是简单快捷地进行 Base64 代码的解码或编码操作。您的数据可以轻松地编码为 Base64 编码,也可以解码为人类可读的格式。
当需要对二进制数据进行编码,特别是需要通过用于处理文本的介质存储和传输数据时,通常使用 Base64 编码方案。这种编码有助于确保数据在传输过程中完好无损,不被修改。Base64 在许多应用中很常用,包括通过 MIME 收发电子邮件,以及以 XML 或 JSON 形式存储复杂数据。
高级选项
(*)这些选项不可同时启用,否则生成的输出内容将对大多数应用程序无效。当需要对二进制数据进行编码,特别是需要通过用于处理文本的介质存储和传输数据时,通常使用 Base64 编码方案。这种编码有助于确保数据在传输过程中完好无损,不被修改。Base64 在许多应用中很常用,包括通过 MIME 收发电子邮件,以及以 XML 或 JSON 形式存储复杂数据。
高级选项
- 字符集:本网站使用 UTF-8 字符集,因此您输入的数据将以该格式传输。如果要在编码之前将数据转换为其他字符集,请更改此选项。请注意,对于文本数据,编码方案不包含字符集,因此可能需要指定解码过程中使用的适当字符集。对于文件,将默认使用二进制选项,因此会省略转换过程;除纯文本文档之外,所有内容都必须使用此选项。
- 换行符:Unix 和 Windows 系统使用的分行符不相同,因此在编码之前,数据中的任一变体都将替换为所选选项。对于文件部分,在某些情况下无影响,因为文件已包含相应的分隔符,但可以针对“对每一行分别编码”和“将行拆分为组块”功能指定需要使用的分隔符。
- 对每一行分别编码:即使是换行符,也会转换为相应的 Base64 编码形式。如果想要对使用换行符分隔的多个独立数据条目进行编码,请使用此选项。(*)
- 将行拆分为组块:编码的数据将成为不含任何空格的连续文本,因此如果要将其拆分为多行,请选择此选项。MIME(RFC 2045)规范中明确了所运用的字符限制,其中规定编码行长度不得超过 76 个字符。(*)
- 执行 URL 安全编码:如果在 URL 中使用标准 Base64,必须将“+”、“/”和“=”字符编码为相应的百分比编码形式,从而尽可能缩短字符串。启用此选项可编码为对 URL 和文件名友好的 Base64 变体(RFC 4648 / Base64URL),其中“+”和“/”字符分别替换为“-”和“_”,并省略“=”填充符号。
- 实时模式:启用此选项后,输入的数据会立即通过浏览器的内置 JavaScript 函数编码,无需向服务器发送任何信息。该模式目前仅支持 UTF-8 字符集。
安全可靠
与服务器之间进行的所有通信都将通过安全的 SSL 加密连接(https)进行传输。上传的文件处理完毕后,我们会立即从服务器中删除该文件,并且生成的可下载文件在第一次尝试下载或 15 分钟无操作(以较短时间为准)后会立即删除。我们不会以任何方式留存或检查所提交数据或所上传文件的内容。请阅读下面的隐私政策了解详情。
完全免费
我们的工具供免费使用。从现在起,您无需为此类简单任务下载任何软件。
关于 Base64 编码的详细信息
Base64 是许多相似编码方案的通用术语,这些编码方案对二进制数据的编码方式是对这些数据进行数字处理,并将其转换为 Base-64 表示法。Base64 这个术语源自特定的 MIME 内容传输编码。
设计
在不同的实现方式中,会选择不同的具体字符来构成 Base64 所需的 64 个字符。一般规则是选择 64 个字符的字符集,这些字符集 1)属于大多数编码通用的子集,2)也可打印。这样的数据组合使得数据在通过诸如电子邮件之类的系统传输时不太可能被修改,这些系统传统上不是 8 位的。例如,在 MIME 的 Base64 实现中使用的前 62 个值是 A-Z、a-z 和 0-9,后两个值使用的是“+”和“/”。其他变体(通常源自 Base64)都具有这一特性,但为最后两个值选择的符号有所不同;例如,URL 和文件名安全的“RFC 4648/Base64URL”变体使用的是“-”和“_”。
示例
以下这段话引自 Thomas Hobbes 的著作《利维坦》:
“Man is distinguished, not only by his reason, but ...”(“人之所以区别于动物,不仅是因为人是有理性的,而且 ...”)
在 MIME 的 Base64 方案中,这段话表示为 ASCII 字节序列并按照以下方式编码:
TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCAuLi4=
在上面的引语中,Man 的编码值是 TWFu。在 ASCII 编码中,字母“M”、“a”和“n”存储为字节 77、97 和 110,相当于 Base-2 中的“01001101”、“01100001”和“01101110”。这三个字节在 24 位缓冲区中连接在一起,产生二进制序列“010011010110000101101110”。将 6 位(6 位最多具有 64 个不同的二进制值)包转换为 4 个数字(24 = 4 * 6 位),然后在 Base64 中将其转换为相应的值。
文字内容 | M | a | n | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ASCII | 77 | 97 | 110 | |||||||||||||||||||||
位模式 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 0 |
索引 | 19 | 22 | 5 | 46 | ||||||||||||||||||||
Base64 编码 | T | W | F | u |
如本例所示,Base64 编码将 3 个未编码字节(在本例中为 ASCII 字符)转换为 4 个已编码的 ASCII 字符。