Javascript Openpgp.js无法解密pgp消息
我使用的是openpgp.js版本2.2.1 所以我成功地加密了一条消息Javascript Openpgp.js无法解密pgp消息,javascript,angular,encryption,openpgp,openpgp.js,Javascript,Angular,Encryption,Openpgp,Openpgp.js,我使用的是openpgp.js版本2.2.1 所以我成功地加密了一条消息 const options = { data: voteObject.option, // input as Message object publicKeys: (pgp.key.readArmored(pubkey)).keys, // for encryption }; pgp.encrypt(options).then(function(ciphertext) { consol
const options = {
data: voteObject.option, // input as Message object
publicKeys: (pgp.key.readArmored(pubkey)).keys, // for encryption
};
pgp.encrypt(options).then(function(ciphertext) {
console.log(ciphertext.data);
});
这将记录加密的消息。我现在的问题是我无法解密它。在这一点上我完全不知所措,老实说,我已经尝试了所有的事情,我不知道我在做什么了。我知道这没什么可合作的,但我真的没有什么可以给予的
任何建议都将是巨大的帮助 我认为您将密钥的密码短语与加密字符串的密码混为一谈。 通常,在PGP中,发送方使用接收方的公钥对消息进行加密。然后,消息的接收者可以用他的秘密密码短语解密他的私钥,并用得到的解密私钥解密消息 我在下面添加了一个工作示例: 加密 解密 这是一个发送方和一个接收方使用PGP的通常过程。请注意,消息签名和检查签名丢失 现在解密选项中还有密码。 为此,请参见文档中的示例:
var options, encrypted;
options = {
data: 'Hello, World!', // input as String
passwords: ['secret stuff'] // multiple passwords possible
};
openpgp.encrypt(options).then(function(ciphertext) {
encrypted = ciphertext.data; // '-----BEGIN PGP MESSAGE ... END PGP MESSAGE-----'
});
options = {
message: openpgp.message.readArmored(encrypted), // parse armored message
password: 'secret stuff' // decrypt with password
};
openpgp.decrypt(options).then(function(plaintext) {
return plaintext.data; // 'Hello, World!'
});
在这种情况下,密码用于对消息进行加密和解密—根本没有公钥或私钥
我希望这有帮助 我使用crypto js进行加密和解密。如果你想要那个解决方案,我随时准备帮助你。到底是什么不起作用?您是否收到任何错误消息?您传递给encrypt的选项值是多少?@pschild options包含我要加密的字符串和pgp公钥,当我尝试解密时,我传递以下选项:加密的消息、私钥和密码短语。然后我得到这个错误:解密消息时出错:找不到对称加密的会话密钥包。
const receiverPrivateKey = ...;
const receiverPassphrase = 'secret';
const encryptedMessage = '-----BEGIN PGP MESSAGE----- ... wcBMA0rHUQJA4dCdAQg...';
let privKeyObj = (await openpgp.key.readArmored(receiverPrivateKey)).keys[0];
await privKeyObj.decrypt(receiverPassphrase);
let options = {
message: await openpgp.message.readArmored(encryptedMessage),
privateKey: privKeyObj
};
return openpgp.decrypt(options)
.then((plaintextObject) => {
return plaintextObject.data; // Hello, World!
});
var options, encrypted;
options = {
data: 'Hello, World!', // input as String
passwords: ['secret stuff'] // multiple passwords possible
};
openpgp.encrypt(options).then(function(ciphertext) {
encrypted = ciphertext.data; // '-----BEGIN PGP MESSAGE ... END PGP MESSAGE-----'
});
options = {
message: openpgp.message.readArmored(encrypted), // parse armored message
password: 'secret stuff' // decrypt with password
};
openpgp.decrypt(options).then(function(plaintext) {
return plaintext.data; // 'Hello, World!'
});