【问题标题】:NodeRSA key header and footerNodeRSA 密钥页眉和页脚
【发布时间】:2017-06-25 05:53:21
【问题描述】:

我正在使用 Node.js RSA 库 (https://github.com/rzcoder/node-rsa) 生成具有以下代码的公钥和私钥对:

const key = new nodeRSA();
key.generateKeyPair(2048, 65537);

const pemPublicKey = key.exportKey('pkcs1-public-pem');
const pemPrivateKey = key.exportKey('pkcs1-private-pem');

我得到的密钥如下:

-----BEGIN RSA PUBLIC KEY-----\nMIIBCgKCAQEAnvrbDfGOT9pmKWZafkEizt8WfMbhmf46e7zyHMRQNHTxPKuP89fc\n5BAkhXylC9ozfjTjiQb5wDh1yw5HafyAKE4Jh28fzX1TJnVra1ijpQTte4+v1WVe\na8qxBuzUI6bxJtR/AV1XyfeWbYx27lSenw2ynqiut+oQ5MZ9kOxX4ba+/cWYcvMn\ni0OnhnNIQp0a+cY78sfz/LpDMumWDVZKvOTREg1y9KxGkd/yyYrHyxAAsfijY/47\n70KH0c4FjjYrWipVHAHj/ayhoAFRBFY9uI9pqLamf8AfBsjvIT16/viT4LE6kUEu\nU2zxOUevkjTq3tgOZoFomiSDJC1EopVhvQIDAQAB\n-----END RSA PUBLIC KEY-----

问题是:如何去掉base64字符串中的页眉页脚和\n

我想这样做的原因只是因为我希望密钥与我在数据库中的内容保持一致

谢谢!

【问题讨论】:

    标签: node.js rsa


    【解决方案1】:

    根据Import/Export documentation,您可以将密钥导出为 DER 并将结果转换为 base64。 (PEM是DER二进制格式转base64并添加页眉页脚)

    const derPublicKey = key.exportKey('pkcs1-public-der');
    const derPrivateKey = key.exportKey('pkcs1-private-der');
    

    我不熟悉 node.js。 Converting binary to base64 应该是这样的

    var derB64PublicKey  = new Buffer(derPublicKey , 'binary').toString('base64');
    var derB64PrivateKey  = new Buffer(derPrivateKey , 'binary').toString('base64');
    

    另外,从 PEM 数据中删除页眉、页脚和 \n 也很容易,但导出到 DER 的选项似乎更合理

    【讨论】:

      猜你喜欢
      • 2018-03-13
      • 1970-01-01
      • 2020-11-30
      • 2011-08-17
      • 2017-03-20
      • 2012-09-23
      • 1970-01-01
      相关资源
      最近更新 更多