如何在 NodeJS 中生成不需要 PEM 密钥格式的 ECDSA 标志?
How to generate an ECDSA sign without need of PEM key format in NodeJS?
我必须生成一个 ECDSA 符号并在之后对其进行解码。
我尝试了两种不同的形式:一种给了我 135 号的牌子,而另一种给了我 70 号的牌子。第一个是用 pem 密钥生成的()和第二个是使用 'raw' 密钥(eccrypto
模块)生成的,如下所示:
const ecdsa = require('eccrypto');
shaMsg = crypto.createHash('sha256').update(myData).digest();
ecdsa.sign(privateKey, shaMsg).then(function(sig) {
console.log("Signature in DER format:", sig, '-------size: ', sig.length);
ecdsa.verify(publicKey(), msg, sig).then(function() {
console.log("Signature is OK");
}).catch(function() {
console.log("Signature is BAD");
});
});
这段代码的输出是:
Signature in DER format: < Buffer 30 44 02 20 56 5c 61 76 a7 17 3c 67 8d 04 54 dd d5 9a 81 3a e9 1f af a6 7e 2d 34 3e 78 78 47 fb 5e 8e 9c 79 02 20 78 a4 bb f6 20 41 7c 8c 59 1b 93 43 ... > -------size: 70
我需要解码我的符号才能进行其他操作。谁能帮我解决这个问题?
由于没有人帮忙,我用另一个模块(elliptic
)做了我想做的事:
var EC = require("elliptic").ec;
var ec = new EC("secp256k1");
var shaMsg = crypto.createHash("sha256").update(myData.toString()).digest();
var mySign = ec.sign(shaMsg, privateKey, {canonical: true});
我希望这对其他人有帮助。
我必须生成一个 ECDSA 符号并在之后对其进行解码。
我尝试了两种不同的形式:一种给了我 135 号的牌子,而另一种给了我 70 号的牌子。第一个是用 pem 密钥生成的(eccrypto
模块)生成的,如下所示:
const ecdsa = require('eccrypto');
shaMsg = crypto.createHash('sha256').update(myData).digest();
ecdsa.sign(privateKey, shaMsg).then(function(sig) {
console.log("Signature in DER format:", sig, '-------size: ', sig.length);
ecdsa.verify(publicKey(), msg, sig).then(function() {
console.log("Signature is OK");
}).catch(function() {
console.log("Signature is BAD");
});
});
这段代码的输出是:
Signature in DER format: < Buffer 30 44 02 20 56 5c 61 76 a7 17 3c 67 8d 04 54 dd d5 9a 81 3a e9 1f af a6 7e 2d 34 3e 78 78 47 fb 5e 8e 9c 79 02 20 78 a4 bb f6 20 41 7c 8c 59 1b 93 43 ... > -------size: 70
我需要解码我的符号才能进行其他操作。谁能帮我解决这个问题?
由于没有人帮忙,我用另一个模块(elliptic
)做了我想做的事:
var EC = require("elliptic").ec;
var ec = new EC("secp256k1");
var shaMsg = crypto.createHash("sha256").update(myData.toString()).digest();
var mySign = ec.sign(shaMsg, privateKey, {canonical: true});
我希望这对其他人有帮助。