跳至主要內容
Lizely

Base58 編碼 / 解碼

使用 Bitcoin Base58 字母表將 UTF-8 文字進行編碼,或將原始 Base58 解碼為精確的十六進位位元組,並解讀為 UTF-8 的解釋。

隱私權:你的檔案不會離開裝置,所有處理均在瀏覽器本機完成。

使用方式

  1. 1.選擇 UTF-8 文字轉為 Base58,輸入文字,並執行編碼器;檢查 Base58 結果與原始十六進位位元組。
  2. 2.複製完全符合大小寫的結果,不要新增空白或標點符號。
  3. 3.選擇 Base58 轉為位元組與文字,貼上原始 Bitcoin 字母值,並驗證十六進位位元組;僅在為有效 UTF-8 時使用文字解釋。

關於Base58 編碼 / 解碼

Base58 編碼與解碼將 UTF-8 文字轉換為原始 Bitcoin 風格的 Base58,並將有效的 Base58 字串轉換回位元組。編碼器會顯示緊縮的字母表輸出,並與原始位元組以小寫十六進位顯示。解碼器總是顯示恢復的十六進位位元組,並嘗試嚴格的 UTF-8 解釋。所有轉換都在瀏覽器中執行,且不會上傳任何內容。

字母表為 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz。它包含 58 字元,並故意排除零、大寫 O、大寫 I 和小寫 l,因為這些字元視覺上容易混淆。包含被排除字元、空白字元、標點符號或任何不在這個字母表中的符號的輸入將被拒絕,而不是被靜默清理或猜測。字母大小寫保持重要。

編碼將 UTF-8 輸入視為大端序的位元組序列,並反覆將其數值從 256 基數轉換為 58 基數。每個前導零位元組會保留為前導 1 字元。這個規則很重要,因為普通的整數轉換否則會遺失前導零。解碼執行反向基數轉換,並在重要數字前恢復每個前導 1 位元組。

文字介面適合可讀資料,但 Base58 根本上是二進位編碼。解碼後的位元組序列可能不是有效的 UTF-8。在這種情況下,頁面會保留精確的十六進位結果,並清楚說明文字解釋不可用。它不會插入 Unicode 替代字元,因為這樣會隱藏位元組層面的資訊,並讓轉換看起來成功,而實際上並未精確對應。

此工具僅實現原始 Base58 編碼,不包含或驗證 Bitcoin Base58Check 位址與私鑰格式所使用的版本位元組與雙倍 SHA-256 校驗碼。因此,一個語法正確的結果並不能證明 Bitcoin 位址、擴充套件金鑰、WIF 值或其他應用專用物件為有效。在應用語義與校驗碼至關重要時,請使用格式-aware 隨身錢包或經過審查的圖書館。

Base58 是一種可逆編碼,不是加密、雜湊、簽名、壓縮、認證或保密方式。任何人只要有字母表,都可以恢復原始位元組。它在需要使用無視覺歧義字元的 alphanumeric 表示時很有用,但它不會保護 API 金鑰、密碼、種子短語、私鑰、令牌或個人資料。永遠不要將活躍錢包秘密貼到線上工具,即使該工具是本地處理。

此實現限制輸入為 4,096 解碼後的位元組,因為任意基數轉換在長輸入時會呈二次方增長,否則會阻塞瀏覽器。Base58 字串受到比例限制,輸出從來不會靜默截斷,即使使用者介面要求非空輸入,空的程式化向量仍被定義。對於大型二進位載荷,請使用如 Base64 這樣的串流格式,並搭配專為檔案設計的工具。

相容性已針對 Bitcoin 核心官方 base58_encode_decode 資料集中的八個向量進行測試,包括簡單的 ASCII 位元組、較長的短語、任意二進位資料以及帶前導零的情況。獨立的 Bitcoin libbase58 專案確認了原始編碼與 Base58Check 的邊界。這些測試用例鎖定了字母順序、數字轉換與前導零行為,而不是僅依賴於編碼後再解碼的自我一致性。

要使用編碼器,輸入普通文字並複製 Base58 結果。要檢查現有的值,切換至解碼,貼上精確的字串,並比較 UTF-8 解釋與十六進位位元組與預期的應用格式。如果來源將值稱為 Base58Check、Bitcoin 位址或版本金鑰,請記住這頁僅證明原始位元組轉換,並不會驗證周圍的協議。

方法與來源

位元組會透過明確保留前導零位元組作為前導 1 字元,轉換為 base 256 跟 58 字元的 Bitcoin 字母表。解碼後的位元組會使用致命 UTF-8 解釋,並始終顯示小寫十六進位。

常見問題

這是 Base58Check 嗎?
不是。這是原始 Bitcoin 字母 Base58。它不會新增或驗證版本位元組或校驗和。
為何 0、O、I 跟 l 會被拒絕?
這些字元故意未出現在 Bitcoin Base58 字母表中,以減少視覺上的混淆。
為何解碼時有時只顯示有用的十六進位?
Base58 用來表示任意位元組。如果這些位元組不是有效 UTF-8,十六進位就是精確無損的表示方式。

編碼與加密 使用指南

查看全部