仅使用 nodejs/javascript 从私钥 pem 中提取 public 密钥
Extract public key from private key pem using only nodejs/javascript
仅使用 nodejs
和 javascript,如何从私钥 pem 中提取 public 密钥?
我手上的私钥是PEM格式的私钥;我想提取 public 密钥,以便将其分发给协作者。
我经常使用纯 javascript node-forge
模块,但还没有发现如何从私钥中提取 public 密钥。
我也知道,目前正在使用 ursa
模块来完成这个;但我想要 pure javascript 或 pure nodejs 解决方案(如果可用)。
来自 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))
现代答案 NodeJS v11.6.0(2018 年 12 月发布)
您不需要任何外部包
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)
仅使用 nodejs
和 javascript,如何从私钥 pem 中提取 public 密钥?
我手上的私钥是PEM格式的私钥;我想提取 public 密钥,以便将其分发给协作者。
我经常使用纯 javascript node-forge
模块,但还没有发现如何从私钥中提取 public 密钥。
我也知道,目前正在使用 ursa
模块来完成这个;但我想要 pure javascript 或 pure nodejs 解决方案(如果可用)。
来自 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))
现代答案 NodeJS v11.6.0(2018 年 12 月发布)
您不需要任何外部包
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)