从种子生成私钥

Generate Private key from seed

有什么方法可以从用户密码之类的字符串中生成私钥和 public 密钥吗? 我想在每次用户输入密码时检索它

我使用这个椭圆但是它随机生成一个密钥对

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

免责声明:不要创建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);