Base64URL 编码解码工具:URL 安全的 Base64 互转

Base64URL 编码解码工具把标准 Base64 的加号改成减号、斜杠改成下划线并去掉末尾等号,生成可以安全放进 URL、文件名与 JWT 的字符串;解码再反向补回等号。全部在浏览器本地完成,不联网也不上传。

上方已带中文示例,按 Ctrl 或 Cmd 加回车立即转换;结果区与示例均由同一算法得出。下方示例对照表共 14 行,点「加载更多」看全表,可导出 CSV(带 BOM)或复制 TSV。

使用方法

  1. 打开页面默认就带示例:模式为「编码」,输入框里是「你好,世界!Hello, Base64URL!」,结果区已经显示对应的 Base64URL,你不需要先输入任何东西。
  2. 把要处理的文本粘进输入框,点「转换」按钮;编码模式把文本变成 Base64URL,解码模式把 Base64URL 还原成文本。
  3. 在文本框里按 Ctrl 加回车(Mac 上是 Cmd 加回车)也能立即转换,不必点按钮;结果区是当场算出来的,不是固定文案。
  4. 切换「编码 / 解码」模式时,输入框标签会在「原始文本」与「Base64URL 串」之间切换,并自动重算,方便你双向互验。
  5. 点「复制结果」把当前结果复制到剪贴板;点「复制对照表」复制下面示例表的制表符分隔文本,可粘进表格软件。
  6. 本页不联网、不写本地存储,刷新即回到默认示例,所有计算都在你自己的浏览器里完成,输入内容不会离开设备。

这个 Base64URL 编码解码工具能解决什么

标准 Base64 里有两个「麻烦字符」:加号 + 和斜杠 /。它们一旦出现在 URL 查询参数、JWT 令牌或文件名里,就会被当成路径分隔符或空格,导致解析出错。Base64URL编码解码 正是为消除这两个字符而生:把 + 换成 -、把 / 换成 _,再砍掉末尾用于字节对齐的等号 =,得到的字符串在任何 URL 与文件系统里都安全,不会和保留字符打架。

第一类用途是 JWT 与令牌处理。JSON Web Token 的 payload 与签名段用的就是 Base64URL,很多人拿到 JWT 想看里面内容,需要先解码;本工具双向都能做,复制进去立刻看到明文,再复制出来也不会破坏令牌格式。

第二类用途是 URL 与文件名安全传输。当你要把二进制或长串数据塞进链接、做短链参数、或当文件名落地时,先用 Base64URL 编码,就不会被 +/=/ 这些符号干扰,下载与解析都更稳。

第三类用途是调试与教学。开发者在对接接口时,常需要在标准 Base64 与 Base64URL 之间来回切,手动替换容易漏;本工具一键互转,还能直接处理中文,省去先转 UTF-8 再编码的麻烦。

第四类用途是 Cookie、HTTP 头与配置项里的二进制承载。很多老系统只允许 ASCII 文本,要把图片指纹、密钥片段或签名塞进去,就得先编码成可打印字符;用 Base64URL 而不是标准 Base64,能避开 = 与 / 在头部解析时引发的歧义,减少线上怪问题。本工具对这些场景同样适用,复制粘贴即可完成转换。

值得一提,本页所有编码解码都在本地完成,不联网也不上传。你可以把敏感的令牌或数据粘进来放心转,结果不会被任何服务器记录,这点和需要登录的在线编解码站不同,更适合处理私密凭证。

原理和变量

Base64URL编码解码 的核心只有两步替换加一步去等号,完整可逆。编码:先把输入按 UTF-8 字节化(用 TextEncoder 拿到字节数组),再用浏览器原生的 btoa 做标准 Base64,然后执行 safe = b64.replace(/\+/g,'-').replace(/\//g,'_').replace(/=+$/,''),即加号换减号、斜杠换下划线、并删掉末尾所有等号。解码则是反向:先把 - 换回 +、_ 换回 /,再按长度补回等号(缺几个补几个,使长度是 4 的倍数),最后用 atob 解出字节串,再用 TextDecoder 按 UTF-8 还原成文本。

为什么要去掉等号?因为标准 Base64 用 = 做尾部填充,但 = 在 URL 里也是保留字符(用于查询参数),而且多数场景并不需要它——长度信息可推算,所以 Base64URL 约定省略。解码时只要把长度补齐到 4 的倍数即可无歧义还原。下面变量表说明各环节含义,方便你理解为什么中文也能被正确编码。

变量含义说明
bytesUTF-8 字节TextEncoder 把文本变成字节数组
b64标准 Base64btoa 对字节串编码
safeBase64URL+→-、/→_、去末尾 =
pad补等号解码时补到 4 的倍数
TextDecoder字节还原按 UTF-8 还原中文

完整示例

下面这组示例全部由页面算法原样得出,可直接对照你的手算。编码输入「你好,世界!Hello, Base64URL!」,UTF-8 字节经 btoa 得标准 Base64,再替换去等号为「5L2g5aW977yM5LiW55WM77yBSGVsbG8sIEJhc2U2NFVSTCE」,与上方结果区、下方对照表完全自洽。解码该串反向操作即得原中文英文混排文本。注意标准 Base64 里的 + 与 / 在示例中已被替换,例如「测试 123」标准 Base64 含 +,Base64URL 变成「5rWL6K-VIDEyMw」。

如果你想验证手算,可以把任意字符串先按 UTF-8 写成字节,再做标准 Base64,最后把 +/−、//_、去掉末尾 =,三步做完必然和本工具一致。这个三步法也是你在不支持本页的环境里手动复现结果的可靠办法,记牢就不怕换工具对不上。

编码
你好,世界!Hello, Base64URL!
5L2g5aW977yM5LiW55WM77yBSGVsbG8sIEJhc2U2NFVSTCE
解码
5L2g5aW977yM5LiW55WM77yBSGVsbG8sIEJhc2U2NFVSTCE
你好,世界!Hello, Base64URL!
字符替换
+ → -
/ → _
末尾 = 省略
例:你好,世界!Hello, Base64URL!
编码 = 5L2g5aW977yM5LiW55WM77yBSGVsbG8sIEJhc2U2NFVSTCE
解码 = 你好,世界!Hello, Base64URL!

常见字符串 Base64URL 编码对照表

下表列出常见字符串的编码结果(共 14 行),前 12 行直接展示,点「加载更多」展开剩余项。你可以一键导出 CSV(带 BOM,Excel 直接认中文)或复制 TSV 粘进表格软件。表里所有结果都由本页同一算法得出,等号已全部省略,加号斜杠已全部替换。

原始文本Base64URL 编码
HelloSGVsbG8
WorldV29ybGQ
你好5L2g5aW9
liuquan.netbGl1cXVhbi5uZXQ
Base64URLQmFzZTY0VVJM
测试 1235rWL6K-VIDEyMw
abcYWJj
AQQ
中文测试Chinese5Lit5paH5rWL6K-VQ2hpbmVzZQ
https://www.example.com/path?x=1aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vcGF0aD94PTE
随机字符串random6ZqP5py65a2X56ym5LiycmFuZG9t
工具箱 toolbox5bel5YW3566xIHRvb2xib3g
邮件 email@test.com6YKu5Lu2IGVtYWlsQHRlc3QuY29t
JSON 数据 x ySlNPTiDmlbDmja4geCB5

结果边界与错误提示

常见问题

Base64URL 和标准 Base64 有什么区别?

只差三处:+ 换成 -、/ 换成 _、末尾等号 = 全部省略。这三点让字符串在 URL、文件名、JWT 里都安全,不会被保留字符干扰;内容是同一份数据,只是写法不同。

为什么解码要补回等号?

标准 Base64 用 = 做尾部填充使长度是 4 的倍数;Base64URL 省略了它,但解码前必须补回,否则 atob 无法按 6 位一组还原字节。本工具按「缺几个补几个」自动补齐,长度非法才报错。

中文为什么也能编解码?

因为先用 TextEncoder 把文本按 UTF-8 变成字节数组,btoa 只对字节编码,所以中英文混排都能正确处理;解码再用 TextDecoder 按 UTF-8 还原,不会乱码。

等号去掉了还能还原吗?

能。Base64 的 = 只是填充,真正信息在前面;只要知道原始字节长度,就能推回需要几个等号。本工具正是靠长度自动补回,所以省略等号完全可逆。

JWT 里的点号要一起编吗?

不要。JWT 由 header.payload.signature 三段用点号隔开,每段各自是 Base64URL;你应逐段解码,而不是把整串(含点号)丢进去,否则点号不是合法字符会报错。

解码报错常见原因是什么?

多半是字符串里混入了空格、换行、汉字或标准 Base64 的 +/= 之外字符;也可能是复制时被截断。清掉多余字符、确认是纯 Base64URL 再解即可。

导出的 CSV 为什么带 BOM?

因为 Excel 打开无 BOM 的 UTF-8 文件时常把中文显示成乱码,BOM 能让 Excel 正确识别编码。TSV 复制走剪贴板不经文件,所以不需要 BOM。

我的数据会上传吗?

不会。所有编码解码在浏览器本地进行,不联网、不写存储,刷新即还原默认示例,没有任何数据离开你的设备,可以放心处理令牌与敏感内容。

相关工具