Base64 编解码工具
文本与文件的 Base64 编解码,支持 URL 安全变体、Data URI 与 Hex 互转。
隐私安全:所有处理均在您的浏览器本地完成,数据绝不上传Base64Base64URL编码开发
编码选项(仅影响「文本 → Base64」)
解码时会自动识别 URL-safe 变体并自动补齐缺失的 = 填充。
工作原理
- 1选择模式:文本编解码 / 文件 → Base64 / Base64 → 文件 / Base64 ↔ Hex。
- 2文本先按 UTF-8 编码为字节,再按 RFC 4648 以每 3 字节映射为 4 个 Base64 字符;解码时反向还原字节并用 UTF-8 解码,因此中文与 emoji 不会乱码。
- 3URL-safe 变体把 + / 替换为 - _ 并按需去掉 = 填充;解码时会自动识别变体并补齐 padding。
- 4文件读取为字节数组后编码为 Base64,并按 file.type 拼接 data:<MIME>;base64,… 形式的 Data URI,可直接赋给 img 的 src。
- 5反向还原时解析 data URI 头取得 MIME,未提供时按文件头魔数猜测,再用内置 MIME→扩展名映射表生成下载文件名。
常见问题
Base64 是加密吗?能用来保护数据吗?
不是。Base64 只是一种把二进制数据映射为可打印 ASCII 字符的编码方式,任何人都能瞬间还原,没有任何保密性。需要保护数据请使用 AES、RSA 等真正的加密算法。
为什么 Base64 之后体积变大了?
因为每 3 个字节(24 bit)会被表示成 4 个 ASCII 字符(32 bit),所以体积约增加 33%;再加上可能的换行与填充,实际略高。这也是图片用 Data URI 内联后文件变大的原因。
标准 Base64 与 URL-safe(Base64URL)有什么区别?
字母表不同:标准 Base64 使用 + 和 /,URL-safe 改用 - 和 _,并通常省略 = 填充。因为 + / = 在 URL 与文件名中需要转义,所以 JWT、URL 参数等场景都使用 URL-safe 变体。本工具会自动识别并正确解码两种形式。
为什么直接 btoa(中文) 会报错?本工具如何处理?
btoa 只接受 Latin-1 范围内的字符,中文会抛出 InvalidCharacterError。本工具先把文本按 UTF-8 编码为字节再做 Base64,因此中文、emoji 都能正确处理,往返转换完全无损。
数据会上传到服务器吗?有文件大小限制吗?
不会。编码与解码全部在浏览器本地完成,不发起任何网络请求,断网也能使用。文件读取为字节数组后在本机内存中处理,超过 10MB 会提示处理可能较慢,但仍可正常完成。