这个页面的代码没跑起来。

直接从文件夹里打开 index.html,浏览器会拦下 JavaScript 模块,于是你选好一个文件之后,页面不会有任何反应。改用 http 把这个文件夹提供出去:

powershell -ExecutionPolicy Bypass -File serve.ps1

然后打开 http://localhost:8080/。

Base64 编码解码 — 还有 URL、HTML 实体、十六进制和转义

Base64、百分号编码、HTML 实体、十六进制和反斜杠转义,双向都行。没有一个字被贴进别人的服务器。

语言: 简体中文
查看源码
你的文本在浏览器里处理,无须上传处理。

这里的每一种编码都是对一串字符做算术,就在这个页面里做完。编解码器是手写的,都在 src/encode.js 里;此外别无他物。这个工具没有任何形式的网络功能,没有什么可取,也没有什么可发。这一点几乎在哪儿都不如在这里要紧:人们往在线 Base64 解码器里贴的是 token,而把 token 贴进别人的网站,等于把它交了出去。

实时检查: 检查中…

离线: 检查中…

不用信我们说的。打开开发者工具,盯着“网络”面板,随便解码点什么。没有哪个请求带走你贴进去的一个字符。嫌麻烦就直接拔掉网线,照样解码。

1 选好编码

哪个方向

2 贴进来

空的

3 把结果带走

还没有结果。

 

以 Markdown 查看

怎样在不上传的前提下编码或解码 Base64

  1. 选好编码。两套字母表的 Base64、给单个值或整个 URL 用的百分号编码、五个 HTML 实体、十六进制字节,以及字符串字面量里的反斜杠转义。菜单下面的说明写着每一种是干什么用的。
  2. 选好方向。“编码”接收明文,产出编码后的形式;“解码”把编码后的形式还原成明文。结果跟着你的输入走:换个方向只是一次点击,什么都不用重敲。
  3. 贴进来,或者把文件拖进来。凡是你能选中并复制的都行。拖到选择框上的文件由你自己的浏览器读进输入框:这里根本没有可省略的上传步骤。
  4. 有错误就读一读。在这里失败的解码器会说出它遇到了什么——Base64 不用的字符、填充放错了地方、不是文本的字节——而不是返回一个貌似像样却错了的结果。
  5. 把结果带走。复制它,或者下载成文本文件。输入框下面的计数会告诉你进了多少字节、出了多少字节。

说得更细的版本

Base64 算加密吗? 不算。而且这个区别在实际里很要命。编码、加密、哈希解决的是三个不同的问题:第一个谁都能还原,第二个持有密钥的人能还原,第三个谁也还原不了。哪个是哪个,一眼怎么认。

常见问题

我的文本会被传到哪里去吗?

不会。这个页面上的每个编码器和解码器,都是在你自己的浏览器里、你自己的硬件上运行的函数。这个工具没有任何形式的网络功能:它从不去取什么,也从不发出什么;页面的 Content-Security-Policy 里写着它允许联系的每一个地址,没有一个属于本站。这正是拿它来处理访问令牌或会话 cookie 的理由:把这类东西贴进别人的解码器,等于把它交给了对方。

这里的 Base64 和别处的 Base64 一样吗?

一样——它是拿 RFC 4648 的测试向量来核对的,而不是拿自己核对自己。两套字母表都能解码,所以用 - 和 _ 写的 JWT,和用 + 和 / 写的一样好读;按 64 个字符折行的输入,会替你接回去。编码走的是 UTF-8 字节,所以带重音的字母或者 emoji 一来一回都安然无恙。

Base64 是加密吗?

不是,把它当加密正是经典的误会。Base64 是一种写法:同样的字节,换一套能在 URL、邮件或 JSON 字符串里活下来的字母表写出来。谁都能把它读回去——这个页面一毫秒就做到了——所以它什么都藏不住,什么都保护不了。你手里的东西要是机密,那它需要的是编码之前的真加密,而不是拿编码来顶替。

为什么解码失败了?

因为贴进来的东西和编解码器以为的不完全是一回事,错误信息会说清差在哪儿:Base64 字母表之外的字符、放错位置的填充、后面没跟两位十六进制数的百分号,或者能从 Base64 解出来、却不是 UTF-8 文本的字节——最后这种通常说明原始内容是个文件,不是字符串。换成浏览器自带的 atob,它会返回一个貌似像样的结果;而能被告知哪里不对,正是把东西贴进解码器的全部意义。

两种网址编码有什么区别?

一个值,还是整个地址。编码“单个值”会转义 URL 赋予了含义的一切——斜杠、问号、和号——这正是查询串里单个参数需要的。编码“整个 URL”则让地址继续能用:斜杠和 ? 留着,只转义 URL 根本带不动的字符。拿前者去编码整个地址,地址就坏了;拿后者去编码一个值,就分不清值到哪儿结束。

它能处理多大的文件?

这里没有设上限,因为没有哪台服务器在为上限掏钱。真正的天花板是你自己的机器:几兆字节的文本没问题;文档特别长的时候,页面会等你敲字停一下再重新编码,而不是跟你抢键盘。

它免费吗,需要注册吗?

免费,没有账号,不用登录,没有试用期,贴多少也没有上限。本站带广告,经费就是从那儿来的,广告拿不到任何关于你文本的信息。

断网能用吗?

能。页面加载一次之后断开网络,它照样干活。这也是证明“什么都没上传”最省事的办法,真要把你的文本送出去解码,拔线那一刻就停了。