如何解决如何使用 JavaScript 库使用椭圆曲线解密加密消息?
我在 JavaScript 中找到了一个关于 Elliptic Curve Cryptography 的库。我已经学会了如何加密消息。但是,我没有找到如何将其解密为原始消息。
加密代码:
var EC = require('elliptic').ec;
var ec = new EC('secp256k1');
var msg = "hello";
let myKey = ec.keyFromPrivate('29f3c33a550d3810e6b82b7b510672118aeabcf8b19e00172e4623cbf480d2b8');
const sig = myKey.sign(msg,'base64');
var derSign = sig.toDER('hex');
console.log (derSign)
输出:
3044022076e7fbf80454f764e346dd359eb7f2002802e68d30a689d77d6211aa2c6e9d7302201b5f35d92b8f4aefd5f69d9d21e3dfba75404e4d5a89e09239b2accf43ff6d63
我想再次将签名返回给 hello
。请问我怎么做?
解决方法
我在 elliptic 中没有看到任何加密和解密功能,即使在库的源代码中也是如此。在您的演示代码中,它是签名,而不是加密消息。您可以使用 verify
来验证消息是否被某些邪恶的人更改..
console.log(myKey.verify(msg,derSign)); // true
console.log(myKey.verify(msg+"something_else",derSign)); // false
当输出为 false 时,表示您的消息已更改,true 表示消息未更改。这就是签名的工作方式,而不是加密或解密消息。
所以,如果你想用 ecc 加密和解密消息,我猜你可能会使用这个库 eccrypto。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。