从 .pem 文件中提取私钥
Posted
技术标签:
【中文标题】从 .pem 文件中提取私钥【英文标题】:extract private key from .pem file 【发布时间】:2021-03-14 04:56:11 【问题描述】:我希望我的代码从我的 pem 文件中提取私钥。
我的 pem 文件看起来像这样 -> -----BEGIN RSA PRIVATE KEY----- 一些加密代码 -----END RSA PRIVATE KEY----- 。
我在 ruby 中有相同的代码,但我无法在 javascript 中执行此操作。
【问题讨论】:
请将您的代码作为文本添加到您的问题中(并注意code formatting)。还有many good reasons,为什么代码图片不是个好主意。 我在尝试将引用的 sn-p 代码从 Ruby 音译为 JavaScript 时遇到了这个问题。来自Authenticating as a GitHub App,感兴趣的朋友可以参考一下。 【参考方案1】:对于那些寻找Authenticate as a GitHub App 的人,在Node.js 14 上下文中:
const fs = require('fs');
const crypto = require('crypto');
const privatePem = fs.readFileSync('github-app-private-key.pem');
const privateKey = crypto.createPrivateKey(
key: privatePem,
);
然后我可以将privateKey
传递给jose SignJWT 的sign
method。
【讨论】:
【参考方案2】:const fs = require("fs");
var myKey = fs.readFileSync("mykey.pem", "utf8").replace("-----BEGIN RSA PRIVATE KEY-----", "").replace("-----END RSA PRIVATE KEY-----", "").trim();
console.log("My key is: ", myKey);
请记住,这仅在文件中有一个键而不是键列表时才有效,但您应该了解要点。
【讨论】:
我不能在 readFIleSync 上使用替换,因为“缓冲区”类型上不存在属性“替换”以上是关于从 .pem 文件中提取私钥的主要内容,如果未能解决你的问题,请参考以下文章
1:RSA 加密 .pem .csr .crt .der .p12文件的区别 base64
1:RSA 加密 .pem .csr .crt .der .p12文件的区别 base64