Go-Ethereum

web3.eth.accounts.create 到底是做什麼的

  • November 12, 2020

什麼時候web3.eth.accounts.create用於創建一個類似這樣的帳戶可以看到。

web3.eth.accounts.create();
> {
   address: "0xb8CE9ab6943e0eCED004cDe8e3bBed6568B2Fa01",
   privateKey: "0x348ce564d427a3311b6536bbcff9390d69395b06ed6c486954e971d960fe8709",
   signTransaction: function(tx){...},
   sign: function(data){...},
   encrypt: function(password){...}
}

現在如果web3.eth.accounts.encrypt(privateKey, password);使用我們從上一步中獲得的相同私鑰執行,我們可以獲得作為 web3 密鑰庫 v3 標準的輸出。現在,如果我們將此文件儲存在 geth 節點的密鑰庫文件夾(ex user/.ethereum/private/keystore)中並執行,personal.listAccounts我們可以在該列表中獲取我們創建的地址。

那麼,當我需要使用什麼密碼來解鎖此帳戶時,我需要提供web3.personal.unlockAccount什麼密碼才能解鎖我的帳戶?

web3.eth.accounts.create();已經創建了一個新帳戶

您可以在 js 中使用類似這樣的內容查看新帳戶資訊:

var account = web3.eth.accounts.create(); //Creates the account (is an object) console.log(account); //show the object in the console

然後,如果您想獲取密鑰庫,則必須使用以下內容提供 privateKey 和密碼:

var walletprivate = account["privateKey"]; //Get the private key from the object var phppasswallet = "THE_PASSWORD"; //provide a password var keystore = web3.eth.accounts.encrypt(walletprivate, phppasswallet); //Get the keystore

但這只是如果您想要帳戶的密鑰庫;帳戶已經創建,web3.eth.accounts.create();您可以直接使用私鑰使用它

它是函式中password使用的encrypt

您在這裡所做的是,使用密碼加密儲存您帳戶的私鑰(因此沒有人可以通過訪問密鑰庫文件找到它)。

為了解鎖帳戶,您需要通過解密來獲取私鑰。您需要在此處提供用於加密的密碼。

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