Bitcoin-Core
base58 不能得到 34 個字元的結果(就像比特幣地址那樣),但是 68 個字元
我正在嘗試將公鑰十六進制轉換為比特幣地址。
從這個網站<http://gobittest.appspot.com/Address>,我可以做一些測試。
例如,我有這個公鑰:
04b4d653fcbb4b96000c99343f23b08a44fa306031e0587f9e657ab4a2541129368d7d9bb05cd8afbdf7705a6540d98028236965553f91bf1c5b4f70073f55b55d
根據網站,地址應該是:
1DU8Hi1sbHTpEP9vViBEkEw6noeUrgKkJH
這是 的 base58 編碼
0088C2D2FA846282C870A76CADECBE45C4ACD72BB655DA1216
。但是,如果我直接
0088C2D2FA846282C870A76CADECBE45C4ACD72BB655DA1216
在這個網站<https://www.browserling.com/tools/base58-encode>上進行 Base58 編碼,我會得到:bSLwwticQjhNvEtqTMZXbn3dLmFrPvNrDGE4hmHsfADpHWb3b2ruh3XqtNzv8ESS8V6V
這與 34 個字元的比特幣地址完全不同。
有誰知道為什麼?
當您使用該站點時,您將十六進制編碼為十六進製字元串,而不是它們應該是的實際字節。地址的 base58 編碼對以十六進製字元串表示的字節本身進行操作。然而,該網站只是對十六進製字元串進行編碼(作為字節,它的長度是兩倍,完全是其他數據)。
Andrew Chow 告訴你原因。現在我告訴你怎麼做。
首先,將十六進制轉換為 ASCII(我建議這個網站)
(我不能複制下面的 ASCII 結果,因為這會導致問題。)
然後複製它創建的看起來很奇怪的 ASCII 文本,並將其粘貼到 Base58 編碼器。
完畢!