作为官方文件
const crypto = require('crypto');
const sign = crypto.createSign('sha256');
sign.update('some data to sign');
const privateKey =
`-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIF+jnWY1D5kbVYDNvxxo/Y+ku2uJPDwS0r/VuPZQrjjVoAoGCCqGSM49
AwEHoUQDQgAEurOxfSxmqIRYzJVagdZfMMSjRNNhB8i3mXyIMq704m2m52FdfKZ2
pQhByd5eyj3lgZ7m7jbchtdgyOF8Io/1ng==
-----END EC PRIVATE KEY-----`;
console.log(sign.sign(privateKey).toString('hex'));
我们如何使用crypto模块生成如下格式的私钥?
`-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIF+jnWY1D5kbVYDNvxxo/Y+ku2uJPDwS0r/VuPZQrjjVoAoGCCqGSM49
AwEHoUQDQgAEurOxfSxmqIRYzJVagdZfMMSjRNNhB8i3mXyIMq704m2m52FdfKZ2
pQhByd5eyj3lgZ7m7jbchtdgyOF8Io/1ng==
-----END EC PRIVATE KEY-----`;
我尝试使用createECDH getPrivateKey,但不是我想要的格式。使用此格式进行签名将导致
错误:错误:0906D06C:PEM例程:PEM_read_bio:无起始线
const crypto = require('crypto');
const bob = crypto.createECDH('secp256k1');
bob.generateKeys();
const privateKey = bob.getPrivateKey()
console.log(privateKey)
我尝试使用
转换它const privateKey = bob.getPrivateKey().toString('base64');
并在头部和尾部添加注释,使其看起来像这样
`-----BEGIN EC PRIVATE KEY-----
pQhByd5eyj3lgZ7m7jbchtdgyOF8Io/1ng==
-----END EC PRIVATE KEY-----`;
但这仍然不起作用
如何使用Crypto模块在node.js中生成有效的ECC pem?