Bitcoinj

將外部密鑰對添加到本地 bitcoinj 錢包

  • September 18, 2020

我需要將一個虛榮地址添加到我使用 bitcoinj API 維護的本地錢包中。我無法在本地 PC 上直接使用 bitcoinj API 搜尋虛榮心,因為我的虛榮心太花哨了。但是,我可以輕鬆地線上生成這對。我應該使用什麼 API 將此密鑰對添加到我的本地錢包?

我嘗試了以下,

假設所需的虛榮心是1meowvYmB7ughhsRvUWfsac9LKDonh4cn(私鑰:) 5JXFsJEAiqtTv95rSmw3KSJeAZ97SsmKWTQq5yqBzioSJ1guUHK我在bitcoinvanitygen生成了這個,我在Base58 Encode、Decode 和 Validate處將它轉換為十六進制。我嘗試了以下。

Address vanity = new Address(networkParameters, networkParameters.getAddressHeader(), Hex.decode("000871DD31D517D15D7352139A44B07EBE97B1772C7F291357"));

我需要Address從這個字元串構造一個。我收到以下錯誤:

exception decoding Hex string: String index out of range: 47

經過一段時間的搜尋,我發現這種類型需要一個私鑰(在 base58 中),需要網路參數,並構造公共地址。請參考:DumpedPrivateKey。這至少對我來說已經足夠了。我使用從 type 導出key的方法從這樣形成的地址構造一個地址。toAddress``key

DumpedPrivateKey vanityKey = DumpedPrivateKey.fromBase58(networkParameters, "5JXFsJEAiqtTv95rSmw3KSJeAZ97SsmKWTQq5yqBzioSJ1guUHK");
ECKey ECVanityKey = vanityKey.getKey();
Address vanityAddress = ECVanityKey.toAddress(networkParameters);

起初,您使用的“服務”是一個常見的騙局,他們沒有提供拆分密鑰生成,這意味著,您獲得的私鑰由他們保存!不要使用這個地址。僅使用帶有拆分密鑰的虛榮地址服務,將您的公鑰提供給它,然後您將獲得一個虛榮地址和一個部分私鑰,如果您合併拆分密鑰(給定公鑰的私鑰和部分私鑰)以獲得最終私鑰!只需打開您的錢包(例如 Bluewallet 或電子錢包)即可導入私鑰,然後導入最終的私鑰!Ps:請刪除bitcointalk中關於這個騙局的反向連結!

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