从种子生成私钥

时间:2019-07-28 12:15:33

标签: javascript cryptography rsa blockchain bitcoin

是否可以通过字符串(如用户密码)生成私钥和公钥? 每当用户输入密码

时,我都想找回它

我使用这个椭圆形,但是它随机生成一个keyPair

const EC = require('elliptic').ec;
const ec = new EC('secp256k1');
let keyPair = ec.genKeyPair();

1 个答案:

答案 0 :(得分:2)

免责声明:请勿创建brain wallets:,尤其是低熵的人为生成的内容。

您可以生成任何32字节的值(secp256k1曲线上的技术有效私钥必须在0x1 to 0xFFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4140之间),请参见Bitcoin Wiki

一种方法是对要从中生成密钥的字符串进行哈希处理:

const EC = require('elliptic').ec;
var crypto = require('crypto');

const ec = new EC('secp256k1');
let secret = crypto.createHash('sha256').update('password').digest('hex');
let keyPair = ec.keyFromSecret(secret);