搭建过私链的朋友应该知道,通过geth生成账号地址后,会在你的私链存储位置生成keystore文件。
那如何获取你的账户地址对应的私钥呢?
使用keythereum库
keythereum 是以太坊提供的用于生成、导入和导出key的js库。
https://github.com/ethereumjs/keythereum
安装很简单:
npm install keythereum
调用importFromFile和recover方法得到私钥:
function getPrivateKey(){
var keythereum = require('keythereum');
var fromkey = keythereum.importFromFile("账户地址", "私链datadir所在位置");
//recover输出为buffer类型的私钥
var privateKey = keythereum.recover('该账户的密码', fromkey);
console.log(privateKey.toString('hex'));
}
需要注意的是importFromFile方法只能在nodejs中调用,不能浏览器中调用,通过查看源码可以看到该判断: