- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用的是 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) {
console.log(ciphertext.data);
});
这会记录加密消息。我现在遇到的问题是无法解密。我现在完全不知所措,说实话,我已经尝试了一切,以至于我不知道自己在做什么。我知道这没什么用处,但我真的没有什么可以提供的。
任何建议都会有很大的帮助!
最佳答案
我认为您混淆了 key 的passphrase
和“简单”加密字符串的password
。
通常,在 PGP 中,发送方使用接收方的公钥加密消息。然后,消息的接收者可以使用他的 secret 密码解密他的私钥,并使用生成的解密后的私钥他可以解密消息。
我在下面添加了一个工作示例:
加密
const receiverPublicKey = ...;
let publicKeys = (await openpgp.key.readArmored(receiverPublicKey)).keys;
let options = {
data: 'Hello, World!',
publicKeys: publicKeys
};
return openpgp.encrypt(options)
.then((encryptedMessageObject) => {
return encryptedMessageObject.data; // -----BEGIN PGP MESSAGE----- ... wcBMA0rHUQJA4dCdAQg...
});
解密
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!
});
这是使用 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!'
});
在本例中,密码
用于加密和解密消息 - 根本不需要公钥或私钥。
希望对您有所帮助!
关于javascript - Openpgp.js 无法解密 pgp 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54785242/
这是我第一次想最好检查我要安装的绑定(bind)软件的 key 。所以我下载了我认为是 OpenPGP key 的东西...... $ wget ftp://ftp.isc.org/isc/bind9
RFC 4880 将版本 4 签名数据包标签 2 描述为 - One-octet signature type. - One-octet public-key algorithm. - One-oct
我正在使用 Grails 插件:crypto:2.0,但在 PGP 中加密解密消息时遇到问题。 这是我的 Controller 代码: def index3 () { def pgpK = P
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。 8年前关闭。 Improve this que
我正在尝试使用 BouncyCaSTLe 库创建签名和加密的消息,然后我在命令行上针对 gpg 进行测试以确认它是否有效。然而,虽然它提供了一个看起来不错的 PGP 消息,但 gpg 在解密它时遇到了
如何使用 Javascript 和 openpgp.js 从文本中读取私钥并生成公钥? 我试图让用户将他们的私有(private) PGP key 输入文本框,并使用该文本框中的数据(和密码)生成公共
我在一个目录中有数百个 gpg 加密文件,格式为 filename.xyz.gpg,其中“xyz”是任意扩展名。我需要解密所有文件以生成 filename.xyz,这样我就不必手动输入每个文件的密码了
我正在使用 PHP 中的 GnuPG 类。我在导入有效公钥时没有遇到任何问题,但如果我尝试随机导入一些明显不是公钥的“测试”之类的东西,我会收到错误 502 错误网关。我在 PHP 文档中看到 gnu
是否有创建 OpenPGP key 或使用 OpenPGP 加密文件的库? 最佳答案 可以看看GPGMe .查看manual关于 generating keys 的条目和 encrypting a p
我想使用我的 GPS (2) 子 key 之一在 Git 中签署提交/标签即,我新创建的具有长 ID B0##...的 RSA4096 仅签名 key sec# ed25519/9F########
我正在开发一个需要验证 OpenPGP 公钥的 go 项目,以便能够使用它来验证文件签名。 我生成了一个根 key 和另一个 key ,我用根 key 对其进行了签名(我们称第二个 key 为已签名)
我对文档有一些疑问。 这是我的程序: package main import ( "bytes" "code.google.com/p/go.crypto/openpgp" "
OpenPGP.js 是一个实现了 OpenPGP 标准的密码学库,最常用于电子邮件加密。 OpenPGP.js 是一个实现了 OpenPGP 标准 的密码学库,
我正在使用以下管道从 Aurora 流式传输数据,将其转换为 csv,然后将其发送到 S3。 可读的 knex 流: const getQueryStream = (organizationId) =
我只有一个 OpenPGP key 的公共(public)指纹。我不知道 key ID 或几乎任何其他信息。 如何获取对应的公钥?有没有在线服务可以做到这一点? 最佳答案 指纹与长短键 ID 的关系如
从 GitHub REST API v3 for GPG Keys 返回的 public_key 字段的格式是什么? ? 例如,命令curl -v -H "Accept: application/vn
我正在尝试从 ActiveMQ 的公共(public) OpenPGP key 中获取指纹。它们发布于http://www.apache.org/dist/activemq/KEYS . 不幸的是,并
据我了解,OpenPGP 是 'definition of a set of standard formats for encrypting/signing' . 我最近推荐某人使用默认的 Java
我尝试导入现有的 pgp 公钥: -----BEGIN PGP PUBLIC KEY BLOCK----- Version: Keybase OpenPGP v1.0.0 Comment: https
我在业余时间一直在研究 OpenPGPjs(Javascript port of OpenPGP)以学习新知识。为了测试它,我正在开发一个简单的网络应用程序来存储和检索 key 对和数据库中的加密数据
我是一名优秀的程序员,十分优秀!