使用nodejs
和仅限javascript ,如何从私钥pem中提取公钥?
我手中的私钥是PEM格式的私钥;我想提取公钥,以便将其分发给合作者。
我经常使用纯javascript node-forge
模块,但尚未发现如何从私钥中提取公钥。
我也知道,目前使用ursa
模块来完成此任务;但我想要一个纯javascript 或纯nodejs 解决方案(如果有的话)。
答案 0 :(得分:7)
您不需要任何外部软件包
https://nodejs.org/api/crypto.html
const crypto = require('crypto')
const fs = require('fs')
// assuming you have a private.key file that begins with '-----BEGIN RSA PRIVATE KEY-----...'
const privateKey = fs.readFileSync('./private.key')
const pubKeyObject = crypto.createPublicKey({
key: privateKey,
format: 'pem'
})
const publicKey = pubKeyObject.export({
format: 'pem',
type: 'spki'
})
// -----BEGIN PUBLIC KEY-----...
console.log(publicKey)
答案 1 :(得分:3)
来自node-forge documentation
pem = '-----PRIVATE KEY ----- [...]'
pki = require('node-forge').pki
privateKey = pki.privateKeyFromPem(pem)
publicKey = pki.setRsaPublicKey(privateKey.n, privateKey.e)
console.log(pki.publicKeyToPem(publicKey))