【问题标题】:I keep getting errors while trying to encrypt a message using Openpgp.js尝试使用 Openpgp.js 加密消息时不断出错
【发布时间】:2022-10-24 06:20:35
【问题描述】:

我使用 Openpgp.js 生成了密钥,并将以下密钥作为公钥:

publicKey: "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nxjMEYsTz2BYJKwYBBAHaRw8BAQdAP6YvOhz9VKvV78ELW34Ufn1M10lDrv0k\n5A0zP0VHw8HNJjJTdGVwc0Zyb21IZWxsIDxhYmNkZWZnaEBhYmNkZWZnaC5j\nb20+wowEEBYKAB0FAmLE89gECwkHCAMVCAoEFgACAQIZAQIbAwIeAQAhCRAT\nF2pNLLmmchYhBGIZLWiMyuztkw8ilxMXak0suaZyVMUBAILAEJzIYtgA5pq6\nZorp8Zb6fP+ImwkD5g991SQmPhG0APoCbs+lcvrdavNLeYLRUh0VP4/iIp3U\nKtsoor1oCIYTDM44BGLE89gSCisGAQQBl1UBBQEBB0AqIqBiInlN3OUzZSoe\nYYY65gVLho588CULO/y30dWaOwMBCAfCeAQYFggACQUCYsTz2AIbDAAhCRAT\nF2pNLLmmchYhBGIZLWiMyuztkw8ilxMXak0suaZytisA/ilwmNQXcxs0zURR\nmuU/l3ngpfLcOE3G2D7g9JGaU+AtAQCqzJ11g0x6xbY7mJS+UdJjk6gb60mq\nqYlNhcVH5aw1CQ==\n=G/+7\n-----END PGP PUBLIC KEY BLOCK-----\n"

现在我尝试运行以下 js 代码以加密消息:

async function EncryptMessage(pubkey, msg) {
  var openpgp = window.openpgp;
  var public_key = pubkey.value;
  console.log(public_key);
  var message = msg.value;
  console.log("message: " + message);
  const email = {
    subject: "Message",
    body: message
  }
  console.log(email)
  const options = {
      data: JSON.stringify(email),
      publicKeyArmored: public_key
  };
  console.log(options)
  let messageForOp = "";
  openpgp.encrypt(options)
      .then((cipherText)=>{
           messageForOp = cipherText.data;
           console.log(messageForOp)
      });
}

我的控制台正在记录这个:

"-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nxjMEYsTz2BYJKwYBBAHaRw8BAQdAP6YvOhz9VKvV78ELW34Ufn1M10lDrv0k\n5A0zP0VHw8HNJjJTdGVwc0Zyb21IZWxsIDxhYmNkZWZnaEBhYmNkZWZnaC5j\nb20+wowEEBYKAB0FAmLE89gECwkHCAMVCAoEFgACAQIZAQIbAwIeAQAhCRAT\nF2pNLLmmchYhBGIZLWiMyuztkw8ilxMXak0suaZyVMUBAILAEJzIYtgA5pq6\nZorp8Zb6fP+ImwkD5g991SQmPhG0APoCbs+lcvrdavNLeYLRUh0VP4/iIp3U\nKtsoor1oCIYTDM44BGLE89gSCisGAQQBl1UBBQEBB0AqIqBiInlN3OUzZSoe\nYYY65gVLho588CULO/y30dWaOwMBCAfCeAQYFggACQUCYsTz2AIbDAAhCRAT\nF2pNLLmmchYhBGIZLWiMyuztkw8ilxMXak0suaZytisA/ilwmNQXcxs0zURR\nmuU/l3ngpfLcOE3G2D7g9JGaU+AtAQCqzJ11g0x6xbY7mJS+UdJjk6gb60mq\nqYlNhcVH5aw1CQ==\n=G/+7\n-----END PGP PUBLIC KEY BLOCK-----\n"

message: hello world 

Object { subject: "Message", body: "hello world" }

Object { data: "{\"subject\":\"Message\",\"body\":\"hello world\"}", publicKeyArmored: "\"-----BEGIN PGP PUBLIC KEY BLOCK-----\\n\\nxjMEYsTz2BYJKwYBBAHaRw8BAQdAP6YvOhz9VKvV78ELW34Ufn1M10lDrv0k\\n5A0zP0VHw8HNJjJTdGVwc0Zyb21IZWxsIDxhYmNkZWZnaEBhYmNkZWZnaC5j\\nb20+wowEEBYKAB0FAmLE89gECwkHCAMVCAoEFgACAQIZAQIbAwIeAQAhCRAT\\nF2pNLLmmchYhBGIZLWiMyuztkw8ilxMXak0suaZyVMUBAILAEJzIYtgA5pq6\\nZorp8Zb6fP+ImwkD5g991SQmPhG0APoCbs+lcvrdavNLeYLRUh0VP4/iIp3U\\nKtsoor1oCIYTDM44BGLE89gSCisGAQQBl1UBBQEBB0AqIqBiInlN3OUzZSoe\\nYYY65gVLho588CULO/y30dWaOwMBCAfCeAQYFggACQUCYsTz2AIbDAAhCRAT\\nF2pNLLmmchYhBGIZLWiMyuztkw8ilxMXak0suaZytisA/ilwmNQXcxs0zURR\\nmuU/l3ngpfLcOE3G2D7g9JGaU+AtAQCqzJ11g0x6xbY7mJS+UdJjk6gb60mq\\nqYlNhcVH5aw1CQ==\\n=G/+7\\n-----END PGP PUBLIC KEY BLOCK-----\\n\"" }

错误得到:

Uncaught (in promise) Error: Parameter [message] needs to be of type Message   openpgp.js:619:14

【问题讨论】:

    标签: javascript public-key-encryption openpgp openpgp.js


    【解决方案1】:

    我认为您在那里看到的是您没有创建消息,并且 encrypt 方法需要一个具有Message 类型的消息属性的对象。

    const email = {
      subject: 'Message',
      body: message,
    }
    
    const message = await createMessage({ text: JSON.stringify(email), format: 'text' })
    
    await encrypt({
      message,
      encryptionKeys: public_key,
    })
    

    【讨论】:

      猜你喜欢
      • 2017-09-18
      • 1970-01-01
      • 2021-01-22
      • 2019-07-14
      • 2016-02-23
      • 2015-08-11
      • 2021-07-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多