Base64 与 URL 编码工具
在你的设备上运行,不会发送任何内容。一切都在您自己的设备上完成。您输入或上传的任何内容都不会被发送到任何地方。
文本
结果
结果将显示在此处
在浏览器本地对 Base64 和 URL 编码字符串进行编码或解码,或将文件转换为 Base64。
Base64 使用 64 个可打印字符将任意二进制数据转换为纯 ASCII 文本,因此在任何需要让二进制数据通过纯文本通道传输的场景中都能见到它的身影——例如将图片直接嵌入 CSS 或 HTML、把文件作为电子邮件附件,或在 JWT 中编码令牌。URL 编码(百分号编码)是一种不同且不相关的方案,用于转义 URL 本身不能直接包含的字符(如空格和&符号),使其在放入查询字符串后依然完好无损。此工具可在浏览器本地为这两种方案双向转换文本或文件——不会有任何内容被上传到任何地方。
常见问题
Base64 是加密吗?
不是。Base64 是一种编码,而非加密——任何人都可以立即将其解码,无需任何密钥或密码,本工具也不例外。它只是改变数据的表示形式,以便安全地通过那些期望接收文本而非二进制数据的系统。切勿用它来隐藏任何敏感信息。
为什么 Base64 编码后的文本以 = 号结尾?
Base64 以 3 字节为一组进行处理,每组转换为 4 个输出字符。当输入不是 3 字节的整数倍时,= 字符会将最后一组填充到完整的 4 个字符。URL 安全变体通常会省略这种填充,因为解码器通常可以根据字符串的长度推断出来。
标准字母表和 URL 安全字母表有什么区别?
标准 Base64 使用 + 和 / 作为其 64 个字符中的两个,但这两个字符在 URL 中都有特殊含义(分别表示空格和路径分隔符),因此标准 Base64 字符串直接放入 URL 或文件名中可能会出错。URL 安全变体用 - 和 _ 替换这两个字符,这也是它被用于 JWT 及类似令牌格式的原因。
为什么解码有时会显示二进制数据而不是文本?
Base64 几乎可以编码任何字节,而不仅仅是文本——图片、字体文件、可执行文件皆可。当解码后的字节无法构成有效的 UTF-8 文本时,此工具就无法将其显示为可读字符串,但您仍然可以将其下载为文件,以恢复原始的二进制内容。
为什么 Base64 编码后的输出比原始数据大约三分之一?
Base64 会把每 3 个输入字节映射为 4 个输出字符,因此无论是编码一段文本还是整个文件,编码结果总是比原始数据大约大 4/3 倍(约 33%)。这部分额外开销,是用仅 64 个可打印字符来表示任意二进制数据必须付出的代价,这是正常现象,并不代表出了什么问题。
在解码 URL 安全的 Base64 字符串之前,需要先勾选“URL 安全字母表”吗?
不需要,无论字符串使用的是标准字母表还是 URL 安全字母表,解码始终都能正常工作。此工具会在后台自动把 - 和 _ 转换回 + 和 /,并补齐缺失的 = 填充,因此您可以直接把任意一种变体粘贴到解码模式中。这个复选框只在编码时才有意义,因为它决定了输出使用哪种字母表。
面向开发者:在 URL 中打开此页面并附带 `q` 参数 - 例如 gizke.com/base64?q=hello world - 该值会自动预填。大多数访问者不需要这个功能;它用于直接链接到一个可用的现成示例。