我正在尝试在JavaScript中生成以太坊密钥对。
为了做到这一点,我正在测试一些ECDSA / Keccak256算法,以从私钥中获取公钥。我发现的最有前途的一个(知道我想仅对私钥避免伪随机的约束)是:https://github.com/bitchan/eccrypto
我已经能够使用lib的两个功能来生成私钥和获取公钥:
const privateKey2 = eccrypto.generatePrivate();
console.log(privateKey2);
const publicKey = eccrypto.getPublic(privateKey2);
console.log(publicKey);
但是,每当我尝试对之前不是由电子密码生成的私有密钥使用getPublic时,[eccrypto.getPublic将不起作用,并且将拒绝并显示错误Bad private key
。最奇怪的是,即使我通过电子密码复制生成的私钥,然后尝试将其传递给eccrypto.getPublic()
(硬编码),也会遇到相同的错误:
const TypedTable = new Uint8Array([
235,
78,
133,
244,
5,
163,
18,
32,
218,
162,
173,
132,
214,
16,
57,
100,
122,
48,
167,
30,
203,
69,
52,
48,
30,
99,
20,
32,
249,
210,
140,
48
]);
const publicKey = eccrypto.getPublic(TypedTable);
这是一个非常具体的问题,但是如果有人有解决方案,那对我真的有帮助!
我正在尝试在JavaScript中生成一个以太坊密钥对。为此,我正在测试一些ECDSA / Keccak256算法,以从私钥获取公钥。我发现的最有希望的(...
Buffer
,其中就有一个isScalar
方法使用isBuffer
,并且它需要一个实际的Buffer
对象。