這個頁面的程式碼沒跑起來。

直接從資料夾裡開啟 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. 把結果帶走。複製它,或者下載成文字檔案。輸入框下面的計數會告訴你進了多少位元組、出了多少位元組。

常見問題

我的文字會被傳到哪裡去嗎?

不會。這個頁面上的每個編碼器和解碼器,都是在你自己的瀏覽器裡、你自己的硬體上執行的函式。這個工具沒有任何形式的網路功能:它從不去取什麼,也從不發出什麼;頁面的 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 根本帶不動的字元。拿前者去編碼整個地址,地址就壞了;拿後者去編碼一個值,就分不清值到哪裡結束。

它能處理多大的檔案?

這裡沒有設上限,因為沒有哪臺伺服器在為上限掏錢。真正的天花板是你自己的機器:幾 MB 的文字沒問題;文件特別長的時候,頁面會等你敲字停一下再重新編碼,而不是跟你搶鍵盤。

它免費嗎,需要註冊嗎?

免費,沒有帳號,不用登入,沒有試用期,貼多少也沒有上限。本站帶廣告,經費就是從那裡來的,廣告拿不到任何關於你文字的資訊。

斷網能用嗎?

能。頁面載入一次之後斷開網路,它照樣運作。這也是證明「什麼都沒上傳」最省事的辦法,真要把你的文字送出去解碼,拔線那一刻就停了。