Go-Ethereum

將 eth 密鑰轉換為 geth 密鑰

  • February 8, 2016

我需要將我的 eth 密鑰轉換為 geth 密鑰。

eth 把鑰匙放進去%appdata%\roaming\Web3\keys,我把它看作一個.json文件。如果我將它移到%appdata%\roaming\Ethereum\keystore目錄中,geth 仍然無法辨識它。如果我嘗試這樣做geth account import keyname.json,則會失敗:

Fatal: Could not create the account: encoding/hex: invalid byte: U+007B '{'"

我還嘗試通過添加“地址”來更改 .json 文件,使其看起來更像 geth 鍵:

$$ address $$“無濟於事。 背景故事:我使用 eth 創建了一個帳戶,將一些 ether 移入其中(使用 etherchain.org 驗證),但我的 eth 安裝總是被破壞,無法連接到對等點等,所以我想將帳戶移動到 geth。該帳戶是從 eth 0.9.41 生成的。我還沒有嘗試重新安裝 eth,以防有一些東西需要保留才能繼續。安全第一…

這是可能的,但不推薦,因此沒有記錄的功能。

  1. 獲取賬戶的 UUID:
~ $ ethkey listbare
8766c082-432f-5548-608c-6eec600757f9
  1. 顯示私鑰:
~ $ ethkey inspectbare --show-me-the-secret 8766c082-432f-5548-608c-6eec600757f9
Enter passphrase for key 8766c082-432f-5548-608c-6eec600757f9: 
Key 8766c082-432f-5548-608c-6eec600757f9:
 ICAP: XE871TJEHQTCYKGJ2ETMECEX4AVZLMG4MZ
 Raw hex: 006ed403807ae87b9f958f25c33862927ba1b57b
 Secret: 7b275146cbb8da08xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxe10da42934fa2f01
  1. 將明文密鑰導入geth:
~ $ echo 7b275146cbb8da08xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxe10da42934fa2f01 > delete-me.prv
~ $ geth account import delete-me.prv 
Your new account is locked with a password. Please give a password. Do not forget this password.
Passphrase: 
Repeat passphrase: 
Address: {006ed403807ae87b9f958f25c33862927ba1b57b}
  1. 不要忘記再次從磁碟中刪除普通密鑰:
~ $ rm -f delete-me.prv 

經過一番探勘,我發現了Stephan Tual的評論,指出它旨在防止您提取(未加密的)私鑰,並且永遠不會將它們暴露給使用者。這個想法是,這將消除例如將密鑰留在 U 盤上的風險。

最好的辦法是在 geth 中生成新密鑰,然後簡單地將資金轉移到新賬戶。

引用自:https://ethereum.stackexchange.com/questions/974