Accounts

有沒有辦法從 RSA 密鑰創建一個乙太坊帳戶?

  • December 16, 2017

我有我非常私密的 RSA 密鑰:

-----BEGIN PRIVATE KEY-----
MIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQDI0vCkxjyJQ7b7
MVJKKXVTFSH3yN5xWozV1pZ8grTTr6dL90bmeCHIw9PnsZRJWsAhstnSnLm1v7KE
kkNqFi2s+sBf1BSBDZ5onoWE0dtb3R2dG25AsYRj54Sd6rtX9U/2aF ... uNjei
sMA0VQ2av7J60ulAz2AYMHoMrEOznhUpgOM7Op7hR3WE0XFkmL4wmcovboCXTtp8
tMK8EN5Hp4YasJp4Hw9Rc50EluiXMsCuc9Uwr41FZhQQJGtWPGImxoiPU6jJfZUP
yja709eeToSrwU6xoYArh7RnN3Qx
-----END PRIVATE KEY-----

我使用 keythereum 生成一個乙太坊錢包:

const privateKey = fs.readFileSync('my_private_key_file', 'utf8')
const password = 'myVerySecretPassword'

function generateWallet(privateKey, password){

   const dk = {
       privateKey: Buffer.from(privateKey, 'utf8'),
       salt: crypto.randomBytes(32),
       iv: crypto.randomBytes(16)
   }

   const options = {
       kdf: "pbkdf2",
       cipher: "aes-128-ctr",
       kdfparams: {
           c: 262144,
           dklen: 32,
           prf: "hmac-sha256"
       }
   }

   return keythereum.dump(
       password,
       dk.privateKey,
       dk.salt,
       dk.iv,
       options
   )
}

這就是我得到的:

{
   address: 'c1cfd69deab90015dd456164d058f73abe3b80f4',
   crypto: {...},
   id: 'd94389ec-1e8a-4e95-a386-0a3be0900e13',
   version: 3
}

現在我想從地址開始交易0xc1cfd69deab90015dd456164d058f73abe3b80f4。如何解鎖它並設置為所需的硬幣庫?JSON RPC 方法parity_newAccountFromSecret只接受十六進制,長度不超過 64 個字元。

不,沒有。乙太坊使用基於ECDSA(橢圓曲線數字簽名算法)的密鑰,這與RSA(Rivest、Shamir、Adleman)完全不同。

也可以看看

乙太坊地址是如何產生的?

生成可用的乙太坊錢包及其對應的密鑰

ECDSA:更好的網際網路的數字簽名算法

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