是否可以通过字符串(如用户密码)生成私钥和公钥? 每当用户输入密码
时,我都想找回它我使用这个椭圆形,但是它随机生成一个keyPair
const EC = require('elliptic').ec;
const ec = new EC('secp256k1');
let keyPair = ec.genKeyPair();
答案 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);