Loading...
Loading...
免费的在线 Base64 编解码工具——文本和文件编码为 Base64,解码 Base64 为可读文本。支持 URL 安全和标准变体。
Base64 是一种二进制到文本的编码方案,使用 base-64 表示将二进制数据表示为 ASCII 字符串格式。它的工作原理是将 3 字节(24 位)的二进制数据分组为 4 组各 6 位,然后将每个 6 位值映射到 Base64 字母表中的一个字符(A-Z、a-z、0-9、+、/)。当输入长度不能被 3 整除时,使用 = 字符进行填充。
编码使用特定的字符集。标准 Base64 使用 A-Z、a-z、0-9、+ 和 /。URL 安全的 Base64 将 + 替换为 -、将 / 替换为 _,使输出在 URL 和文件名中使用时无需进行百分比编码。两种变体都使用 = 进行填充,因此输出长度始终是 4 的倍数。
Base64 的常见用途包括:将图像直接嵌入 HTML 或 CSS 作为 data URI(data:image/png;base64,...)、编码电子邮件附件的 MIME 编码、在期望文本格式的 JSON 中存储二进制数据、以文本格式(如 PEM——带有头部和换行的 Base64)编码加密密钥和证书以便存储,以及通过仅支持文本的系统传递二进制数据。
一个常见的误解是 Base64 是一种加密形式。它不是。Base64 是编码——任何人在没有密钥的情况下都可以完全逆转转换,且不提供任何安全保障。将 Base64 视为传输编码,而非安全措施。如果需要机密性,请先使用适当的算法(AES、ChaCha20)加密数据,然后再进行 Base64 编码。
存在几种常见的 Base64 变体:标准 Base64(RFC 4648 §4)使用标准字母表和填充,URL 安全 Base64(RFC 4648 §5)使用 - 和 _ 及可选填充,MIME Base64(RFC 2045)使用标准字母表以及每 76 字符的换行(用于电子邮件),PEM Base64 使用 MIME 风格编码以及头部和 64 字符行。通常所说的 Base64 一般指标准变体。选择与你的传输需求匹配的变体。
不是。Base64 是编码,而非加密。任何人都可以使用无数免费在线工具或一行代码(JavaScript 的 atob()、Python 的 base64.b64decode())立即解码 Base64。它的目的是使二进制数据在传输中文本安全,而不是隐藏内容或提供安全性。
Base64 将 3 字节编码为 4 字符。如果输入字节数不能被 3 整除,则添加填充字符(=)使输出长度为 4 的倍数。一个 = 表示输入多出 2 个字节,== 表示多出 1 个字节。
可以,但需谨慎。Base64 编码的图像可以直接嵌入 HTML 作为 data URI:<img src='data:image/png;base64,...'>。然而,Base64 会使大小增加约 33%,因此嵌入式图像最适合小图标。对于较大的图像,作为单独文件提供更高效,并允许浏览器缓存。
URL 安全的 Base64(base64url)将 + 替换为 -,将 / 替换为 _,以防止在 URL 和文件名中出现问题——其中 + 被解释为空格,/ 被解释为路径分隔符。它通常也省略填充(=)以保持紧凑。大多数现代 Web API 的 Base64 实现同时支持两种变体。
三者都编码二进制数据为文本,但效率不同。Base64 将 3 字节编码为 4 字符(33% 开销)。Base32 将 5 字节编码为 8 字符(60% 开销)但仅使用字母数字字符(无 +/=)。Base16(十六进制)将 1 字节编码为 2 字符(100% 开销)但最易人类阅读。