比特幣 WIF ↔ HEX 線上轉換工具
輕鬆在比特幣私鑰的 Wallet Import Format(WIF 壓縮版/未壓縮版)與 64 字元十六進位制(HEX)格式之間進行雙向轉換。
這是一個在瀏覽器端執行的比特幣私鑰格式轉換工具,使用 Base58Check 與 SHA-256 演算法進行 WIF 私鑰的編碼與解碼。工具可以在不將私鑰傳送到網路伺服器的情況下,將原始 256 位元 HEX 私鑰與 WIF 格式互相轉換。私鑰屬於高度敏感的錢包資訊,請勿在公開網站或不受信任的環境中輸入真實資產所使用的私鑰。
L2bWLsmchd4AUaFq56UuQ1u3pdNqz28TcJZBHJjE61J1CEbbzSDj
5K2vmqCvQFWiZyvf5Z49hZNm95AUs5LMywGuB3CqH63wsdRAzcs
a0664b8e95a437a616737ec4a141c4abe15f9548f16b0451e1481c26f33c7025
比特幣私鑰格式轉換:HEX 與 WIF 雙向轉換
本教育指南介紹如何將原始 256 位元十六進位制私鑰編碼為 Wallet Import Format(WIF),以及如何從 WIF 解碼並還原原始私鑰格式。
1. 什麼是 WIF(Wallet Import Format)?
比特幣原始私鑰本質上是一個 256 位元的數值,通常以 64 個字元的十六進位制(HEX)字串表示。HEX 格式非常適合電腦處理,但本身沒有內建的錯誤檢查機制,因此在手動複製或輸入時,如果出現一個字元錯誤,就可能導致私鑰無法正常使用。
Wallet Import Format(WIF)是一種專門為比特幣私鑰設計的標準編碼格式,方便使用者將私鑰複製並匯入支援 WIF 的錢包軟體。WIF 採用Base58Check編碼,加入網路版本位元組與 4 位元組檢查碼,因此可以協助偵測部分輸入或複製錯誤。
2. HEX 轉換為 WIF:完整步驟
如果要將 64 個字元的原始 HEX 私鑰轉換成壓縮 WIF,可以按照以下流程處理:
-
加入主網版本前綴:在 32 位元組的 HEX 私鑰前方加入比特幣主網 WIF 版本位元組
0x80。 -
加入壓縮標記(選用):如果該私鑰將用於產生壓縮格式的公開金鑰,則在資料結尾加入
0x01。 -
計算檢查碼:對完整 Payload 執行兩次 SHA-256,即
SHA256(SHA256(Payload)),並取結果前 4 個位元組作為檢查碼。 - 加入檢查碼:將 4 位元組檢查碼附加至 Payload 尾端。
- Base58 編碼:將完整位元組資料使用 Base58 進行編碼,產生最終的 WIF 私鑰。
檢查碼:SHA256(SHA256(HEX Payload)) 的前 4 個位元組
WIF 輸出:Base58Encode(HEX Payload + 檢查碼)
3. WIF 前綴與格式對照
從 WIF 字串的第一個字元,可以初步判斷其所屬的 Bitcoin 網路,以及私鑰是否對應壓縮公開金鑰:
| WIF 開頭字元 | 網路 | 私鑰類型 | 長度 |
|---|---|---|---|
5 |
Bitcoin 主網 | 未壓縮 | 51 字元 |
K 或 L |
Bitcoin 主網 | 壓縮 | 52 字元 |
9 |
Bitcoin 測試網 | 未壓縮 | 51 字元 |
c |
Bitcoin 測試網 | 壓縮 | 52 字元 |
4. WIF 轉換為 HEX:解碼流程
如果要從 WIF 字串還原原始的 64 字元 HEX 私鑰,可以按照相反方向執行解碼流程:
- 步驟 1:將 Base58 格式的 WIF 字串解碼為原始位元組資料。
- 步驟 2:將最後 4 個位元組,也就是檢查碼,從 Payload 中分離出來。
- 步驟 3:對 Payload 執行兩次 SHA-256,並確認計算出的檢查碼與原始檢查碼一致。如果兩者不一致,表示 WIF 可能無效、輸入錯誤或資料已損壞。
- 步驟 4:移除開頭的版本位元組
0x80,以及代表壓縮格式的結尾位元組0x01(如果存在),即可取得原始的 32 位元組 HEX 私鑰。