Javascript:从私钥生成 ECDSA 公钥
Posted
技术标签:
【中文标题】Javascript:从私钥生成 ECDSA 公钥【英文标题】:Javascript: Generating ECDSA public key from private key 【发布时间】:2018-12-17 10:33:31 【问题描述】:是否有任何库支持从 javascript(前端)的私钥派生 ecdsa 公钥? (有了私钥,我们就可以生成对应的公钥了)
我研究了localethereum white paper,我想实现加密层。
上面写着:
AccountKeyIdentityPublic — 使用 SECP-256k1 曲线,ECDSA 公钥对应于 AccountKeyIdentityPrivate。
但是,似乎有很多库 (1, 2) 不支持此功能。
谁能给我一些建议?谢谢!
【问题讨论】:
我觉得对你有帮助github.com/kjur/jsrsasign @huynhsamha 谢谢~ 但它也无法分配私钥。也就是说,私钥是随机生成的。 generateKeyPairHex() 【参考方案1】:您可以使用支持点乘的库来做这样的事情。 要获得您的公钥,您只需将生成点 G 乘以您的私钥。
例如使用 elliptic 包:
var EC = require('elliptic').ec;
// Create and initialize EC context
// (better do it once and reuse it)
var ec = new EC('secp256k1');
// Then generate the public point/key corresponding to your secret key.
var pubPoint = ec.keyFromSecret(secret).getPublic();
【讨论】:
是的,你的方法是对的。但我担心如果我自己编码,可能会存在一些安全问题...... 我在椭圆项目中使用 dist/elliptic.js 找到了解决方案。通过 和 var ec = new EC('secp256k1'); var pubPoint = ec.keyFromSecret(secret).getPublic();以上是关于Javascript:从私钥生成 ECDSA 公钥的主要内容,如果未能解决你的问题,请参考以下文章