eccrypto.getPublic()不适用于“自定义”私钥

问题描述 投票:1回答:1

我正在尝试在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算法,以从私钥获取公钥。我发现的最有希望的(...

javascript cryptography ethereum ecdsa
1个回答
0
投票
我认为您只需要在传递私钥之前将其转换为Buffer,其中就有一个isScalar方法使用isBuffer,并且它需要一个实际的Buffer对象。
© www.soinside.com 2019 - 2024. All rights reserved.