使用方法
- 選擇輸入內容的源編碼,例如 Base64。
- 選擇想要得到的目標編碼,例如 Base58。
- 貼上輸入內容,即可得到轉換結果。
- 點選「複製」使用結果,或點選「交換」反向轉換。
為什麼要轉換位元組,而不是文字
Base64、Base58、十六進位以及本站的其他編碼,表示的都是位元組。先解碼成文字再重新編碼的做法,只有在資料本身確實是文字時才行得通。金鑰、雜湊、簽名、圖片和壓縮資料中有大量不是合法 UTF-8 的位元組序列,文字解碼器會把它們替換成 U+FFFD 替換字元,重新編碼後的結果就悄悄出錯了。
本工具把源字串解碼成原始位元組,再直接用目標編碼寫出這些位元組。32 位元組的金鑰轉換後仍然是 32 位元組,開頭的零位元組也會保留,反向轉換得到的位元組完全一致。轉換全程在瀏覽器中完成。
常見的轉換場景
- Base64 轉 Base58:把介面返回的公鑰或雜湊轉換成比特幣、Solana 和 IPFS 使用的格式。如果輸入是十六進位,請看十六進位轉 Base58。
- Base32 轉 Base64 或十六進位:檢視 TOTP 金鑰的內容,或在需要其他格式的系統中複用它。
- 十六進位轉 Base62 或 Base58:縮短 URL 中的雜湊和 ID。64 位的 SHA-256 十六進位字串會縮短到 43 個字元左右。
- Base64 轉 Base64URL:讓值可以安全地放進 URL、Cookie 和 JWT 欄位。
- Ascii85、Base85 或 Z85 轉 Base64:複用從 PDF 資料流、Git 二進位補丁或 ZeroMQ 訊息中取出的資料。
同樣的 4 個位元組,用五種編碼表示:
| 編碼 | 結果 |
|---|---|
| 十六進位 | deadbeef |
| Base64 | 3q2+7w== |
| Base58 | 6h8cQN |
| Base62 | 44pZgF |
| Base85 | -mSjx |
輸入規則與限制
- Base64 輸入可以使用標準字母表或 URL 安全字母表,可以包含換行,也可以省略填充。
- 十六進位輸入可以包含空格、冒號或
0x字首,大小寫均可。 - Base58 和 Base62 會把資料當作一個大數處理,因此涉及它們的轉換最多支援約 20 KB。
- 工具不會校驗或新增校驗和。如需驗證或生成 Base58Check 字串,請使用 Base58Check 頁面。
常見問題
如何把 Base64 轉成 Base58?
源編碼選擇 Base64,目標編碼選擇 Base58,然後貼上字串即可。Base64 會先解碼成位元組,再用比特幣 Base58 字母表寫出,Solana 和 IPFS 使用的也是這套字母表。
這和先解碼再編碼有什麼區別?
只有資料是純文字時兩者才一樣。對於金鑰、圖片這類二進位資料,解碼成文字會丟失位元組。本工具從不經過文字這一步,位元組會被完整保留。
為什麼轉換後的字串變長或變短了?
每種編碼中一個字元承載的位數不同。十六進位每位元組需要 2 個字元,Base58 約 1.37 個,Base64 約 1.33 個。全部編碼頁面可以並排對比它們。
可以在這裡把二進位數轉成十進位嗎?
不能按數值轉換。本頁的二進位指把資料的每個位元組寫成 8 位一組,而不是表示某一個數的值。如果要轉換一個數的數值,例如把二進位 1010 轉成十進位 10,請使用進位轉換工具。