如何在节点js中使用pgp加密文件中的私钥和密码短语?

问题描述

我需要在节点 js 中使用此 pgp 加密方法解密 xml 文件,当我使用我的密钥时,它显示 UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'readArmored' of undefined

我的代码是:

const openpgp = require("openpgp");
const fs = require("fs");
const privateKeyArmored = `-----BEGIN PGP PRIVATE KEY BLOCK-----
Version: OpenPGP v2.0.8
Comment: https://sela.io/pgp/
shgfdjksagfajkfgsjksgjksgfjks
-----END PGP PRIVATE KEY BLOCK-----`;
const passphrase = `Verticurl@EsteeLauder`;

openpgp.config.allow_unauthenticated_stream = true;

decrypt();
async function decrypt() {
  const privateKey = (await openpgp.key.readArmored([privateKeyArmored])).keys[0];
  await privateKey.decrypt(passphrase);

  const decrypted = await openpgp.decrypt({
    message: await openpgp.message.readArmored(fs.createReadStream("ConsumerBestRecordList_MDM_20210303_01_21_21_278.xml")),privateKeys: [privateKey],});

  let readStream = decrypted.data;
  let writeStream = fs.createWriteStream("decrypted-dataset.xml",{ flags: "a" });
  readStream.pipe(writeStream);
  readStream.on("end",() => console.log("done!"));
}

如何纠正这个错误并给出正确形式的密钥和密码。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)