Base64编解码
Base64 编码和解码。
这个工具能做什么
这个工具做的事很直接:把一段文本编码成 Base64 字符串,或者把一段 Base64 解码还原成原文,两个方向都在浏览器里即时完成。日常开发中你经常会拿到一串形如 5L2g5aW9 的字符,肉眼根本看不出是什么内容,或者反过来需要把中文、JSON、密钥之类的数据塞进只允许 ASCII 的地方,手写转换既慢又容易错。中文这里尤其容易踩坑,因为一个汉字在 UTF-8 下占三个字节,编码前必须先确定字节序列,本工具统一按 UTF-8 处理,中文编码解码不会出乱码。所有转换都在本地完成,不上传到服务器。
原理上,Base64 是一种把二进制数据表示成可打印 ASCII 字符的编码方式,注意它是编码而不是加密。它把输入按每 3 个字节(24 位)一组切分,再把这 24 位重新按每 6 位一段拆成 4 段,每段的值落在 0 到 63 之间,对应到一张固定的 64 字符表上,也就是 A-Z、a-z、0-9 再加 + 和 / 这 64 个符号。当原始字节数不是 3 的整数倍时,末尾用一到两个等号 = 补齐,这就是很多 Base64 串结尾带 = 的原因。因为 3 字节变成了 4 字符,编码后的体积会比原文膨胀大约三分之一。对中文来说,工具先用 UTF-8 把字符转成字节流,再走上面这套编码,解码时按相反顺序还原,所以能保证中文往返一致。
典型场景集中在数据传输和嵌入两类。传参时,URL 或 JSON 里不方便直接放的特殊字符、换行、二进制片段,先 Base64 编码成一行纯文本就能安全携带,例如把一小段配置或签名放进 query string;HTTP 的 Basic 认证头 Authorization: Basic 后面跟的就是 用户名:密码 的 Base64。嵌入时最常见的是 Data URI,把一张小图标编码成 data:image/png;base64,... 直接写进 CSS 或 HTML,省掉一次网络请求。此外调试 JWT 时,它的 header 和 payload 两段都是 Base64URL 编码的 JSON,拿这个工具解码就能直接看到里面的 iss、exp 等字段,核对令牌内容非常方便。
有几个常见误区值得说清楚。第一,Base64 不是加密也不是哈希,任何人拿到密文都能解回原文,千万别用它来保护密码或敏感信息,它只负责把数据变成可传输的文本形态。第二,标准 Base64 用到的 + 和 / 在 URL 里有特殊含义,所以出现了 Base64URL 变体,把这两个字符换成 - 和 _ 并常常省略结尾的 =,如果你在解码 JWT 或 URL 参数时报错,多半是两种字母表混用导致的。第三,有些系统会在每 76 个字符插入换行(如 MIME 邮件),解码前需要先去掉这些空白。只要输入本身是合法的 Base64,解码就是无损的,还原出的字节和原文完全一致。
Base64编解码是一个免费的在线工具,打开网页就能用,不用下载也不用注册。平时大家搜的“base64编码”、“base64解码”、“base64在线”,说的都是这个。
常见使用场景
- 解码 JWT 的 payload 查看令牌里的过期时间和签发者
- 把小图标编码成 Data URI 内联进 CSS 减少请求
- 生成 HTTP Basic 认证头里的用户名密码串
- 把含中文的 JSON 编码后安全放进 URL 参数
- 还原接口日志里看不懂的 Base64 字段核对内容
使用方法
- 把内容粘贴到输入框(生成类工具直接设置选项)。
- 按需要选择选项,点操作按钮。
- 结果出现在下方,点「复制结果」即可带走。