Base64 解碼
在下方貼上Base64字串並點擊解碼將其轉換為純文字。所有處理均在瀏覽器中本地完成。
URL 安全字元集、換行以及缺失的填充都可以直接接受。
已複製!
什麼是 Base64 解碼?
Base64 解碼將 Base64 編碼的 ASCII 字串轉換回原始的二進位資料或文字。這是 Base64 編碼的逆向操作。
如果輸入包含 Base64 字母表以外的字元(A-Z、a-z、0-9、+、/、=),解碼將會失敗並產生錯誤。
解碼使用瀏覽器內建的 Base64 函式,它相當嚴格:只接受標準字元集和正確的填充,其餘一律拒絕而不是去猜。解出的位元組隨後按 UTF-8 文字讀取。
正在排查一個死活解不開的問題?
解不開的資料包通常是症狀而不是病根:鏈路上某處做了兩次編碼、字元集是被假定而不是被宣告、權杖簽章所涵蓋的位元組和大家以為的並不完全一致。這類活我們在做,圍繞整合、API 以及在它們之間傳遞資料的系統。
說說哪裡出了問題常見問題
我的 Base64 字串為什麼解不開?
幾乎總是四件事之一:出現了字元集之外的字元,通常意味著 URL 被弄壞了,或者複製時帶上了多餘標點;長度多出孤零零一個字元,無法表示整數個位元組;使用了 URL 安全字元集,而它的連字號和底線標準解碼器並不接受;或者填充在傳輸途中被剝掉了。本頁用的是瀏覽器內建的解碼器,對這四種情況都很嚴格,寧可拒絕也不去猜。
為什麼解碼結果不是可讀的文字?
因為那些位元組本來就不是文字。Base64 承載的是任意資料,裡面可能是圖片、PDF、壓縮檔,或者一段序列化結構。本頁把解出的位元組按 UTF-8 文字讀取,所以不是文字的內容會顯示為空或亂碼,這本身就是答案。如果你本以為會是文字,那就要懷疑雙重編碼:有東西把已經是 Base64 的資料又 Base64 了一遍。
沒有填充的 Base64 能解碼嗎?
在這裡不行。填充的作用,是讓解碼器在長度不是四的倍數時知道資料流到哪裡結束,而瀏覽器的解碼器要求必須有它。很多系統會去掉填充,因為等號在 URL 和檔名裡很礙事;如果你的字串正是這種,補上等號直到長度能被四整除即可解碼。多出孤零零一個字元的長度沒法這樣補救,因為一個 Base64 字元只攜帶六位元,湊不出完整位元組。
把敏感資料貼到這個頁面安全嗎?
解碼在你的瀏覽器裡進行,不會送往任何地方,所以風險不在頁面本身,而在這台機器上的其他一切:瀏覽器擴充功能能讀取頁面內容,貼過的機密也常常留在剪貼簿歷史裡。若是線上生產環境的憑證,請改在本機解碼。命令列工具在每台 Unix 機器上都現成可用,PowerShell 裡也有對應的做法。
data URI 該怎麼解碼?
先把前綴去掉。一個 data URI 由 data 這個詞、一個 MIME 類型、一個表示酬載是 Base64 的標記,以及酬載本身組成,只有最後這部分才能解碼。把逗號及其之前的內容全部刪掉,再貼上剩下的部分。多切或少切一個字元,正是隨後解碼失敗的常見原因。