以太坊如何通过privatekey获得keystore
- 前言
- 步骤
前言 【以太坊如何通过privatekey获得keystore】在写智能合约的时候,估计大家还是喜欢用ganache测试链,因为启用geth链的时候还需挖矿,一边听着风扇呼呼作响,一边写代码,而且经常执行
personal.unlockAccount
解锁,感觉甚是不爽。只可惜ganache只提供了privatekey没有keystore,在有些用到keystore的场景中就显得无力。
本文分享一个方法,可以通过privatekey获得keystore的方法。
步骤
- 首先创建一个js文件,把这段代码复制进去并保存为getKeystore.js。
//加载nodejs的模块,模块名叫ethereumjs-wallet
var Wallet = require('ethereumjs-wallet');
//填入自己的密钥
var key = Buffer.from('480b85a0e0d9a70940319779659335566955caa9d70d46e0e1c5ab430f1f9a6e', 'hex');
var wallet = Wallet.fromPrivateKey(key);
//填入自己设置的密码
var keystore = wallet.toV3String('12345');
console.log(keystore);
注:代码中的密钥在哪找呢?
- 安装依赖的模块ethereumjs-wallet
npm install ethereumjs-wallet --save
- 打开终端,在当前目录的位置执行
node getKeystore.js
这时候会输出这样的json字符串:
{
"version": 3,
"id": "492002b1-0e7f-4196-a6d6-bf7904226710",
"address": "a99faeeb8d8bde87dc7bfc764febc62942a899e3",
"crypto": {
"ciphertext": "97378cfa914c65f902cb73faa906f9cdb4b951edefb08e53c5928dfcf0f3d99d",
"cipherparams": {
"iv": "11a393f2f34cf7933dda9ced7ba36f11"
},
"cipher": "aes-128-ctr",
"kdf": "scrypt",
"kdfparams": {
"dklen": 32,
"salt": "46fa998f091e66c4a1f0163ac448a198e7c5134c384b99722f7b7892b3fd2a3a",
"n": 262144,
"r": 8,
"p": 1
},
"mac": "cf605cc9ebd86977754f23e4110f14e2051866229986414d2367b9cc0330d597"
}
}
- 执行之后,终端会输出生成的keystore的字符串,复制字符串内容粘贴到一个空文件中,保存成以下的文件名:
UTC--2018-10-01T10-17-03.822719739Z--
后边接上你的公钥地址(也就是上边产生的json字符串中address字段的值)
这样一个keystore文件就有了。是不是很简单呢?
推荐阅读
- 推动NFT走出监管困境,BSN推出支持NFT基础设施网络
- 腾讯|SaaS的收入模型有哪些(终于有人讲明白了)
- 就业方向上什么才是最重要的(--- 来自程序猿的迷茫。(C++?Java?or算法?))
- 区块链中加密货币的含义
- 波场万倍潜力币HYL23号21:09分 正式上线JustSwap
- 《瀚兰房地产开发区块链应用及案例分享》BSN培训精华回顾
- 对联盟链而言,跨链协议为什么重要()
- 区块链能够应用在哪些行业
- BSN区块链服务网络中密钥托管模式和公钥上传模式有啥区别()
- 币圈人物传|币圈大佬今何在 唯有一诺正当时