输入
输出
结果将显示在这里...工具介绍
Base64 把任意字节写成 A–Z、a–z、0–9、+、/ 和填充用的 =,好放进只适合文本的字段。这个页面可以编码,也可以解码。它不保密:任何人拿到结果都能解回来。
编码时先把文字按 UTF-8 变成字节,再做标准 Base64,并在长度不够 4 的倍数时补 =。实现等价于先做 UTF-8,再调用浏览器的 btoa。解码先 atob,再按 UTF-8 变回文字。失败时输出清空,并提示输入不是有效的 Base64。
计算示例
输入:编码「你好」
输出:5L2g5aW9
输入:编码 hello
输出:aGVsbG8=
输入:解码 5L2g5aW9
输出:你好
使用限制
- 只处理文本。图片或文件要走别的工具,这里不会读文件字节。换行和空格都会算进字节,编码前后的空白不一致就会得到不同结果。
- 解码使用 UTF-8。若原文是用 GBK 编出来的 Base64,解出来会是乱码或直接失败。
- 单字符 A 编码为 QQ==。去掉末尾等号再解码,不一定成功。
常见错误
- 把它当成加密,把密码或令牌用 Base64「保护」后发出去。这只是换了一种写法。
- 解码时带了换行或解释性文字。页面把输入整段交给 atob,多余字符会导致失败。
- 用 URL 场景里的 - 和 _ 直接解码。这个页面做的是标准 Base64,不是 Base64URL。
常见问题
为什么 hello 末尾有一个等号?▾
hello 是 5 个字节,Base64 以 3 字节为一组,最后一组不足,所以补一个 =,得到 aGVsbG8=。
中文为什么变长这么多?▾
「你好」的 UTF-8 是 6 个字节,6 字节编成 8 个 Base64 字符。
abc 这样的字符串能解吗?▾
长度不是 4 的倍数,浏览器的 atob 会抛错,页面显示解码失败。