Bitcoin-Core

base58 不能得到 34 個字元的結果(就像比特幣地址那樣),但是 68 個字元

  • May 6, 2018

我正在嘗試將公鑰十六進制轉換為比特幣地址。

從這個網站<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 編碼器。

在此處輸入圖像描述

完畢!

引用自:https://bitcoin.stackexchange.com/questions/74794