- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我必须使用 256 位 AES-CBC key 加密某些内容。所遵循的加密协议(protocol)是OpenPGP。由于 key 大小为 256 位,并且公钥/私钥也为 4096 位,因此我必须使用轻量级 API。我发现了几个显示如何使用 256 位 AES-CBC key 进行加密的问题,但我不知道如何将其与 PGP 集成。
最明显的方法是使用 AES 引擎对其进行加密,然后使用公钥对结果进行加密,就像在 OpenPGP 中所做的那样。然而,这需要我生成初始化 vector 和 AES key 。这些是我希望库做的事情,因为在做这些事情时可能会出错。
这是我用来加密的代码示例:
PGPEncryptedDataGenerator encGen = new PGPEncryptedDataGenerator(new JcePGPDataEncryptorBuilder(PGPEncryptedData.AES_256).setWithIntegrityPacket(true).setSecureRandom(rand).setProvider("BC"));
encGen.addMethod(new JcePublicKeyKeyEncryptionMethodGenerator(<PGPPublic Key object>));
OutputStream encryptedOut = encGen.open(out, new byte[BUFFER_SIZE]);
通过查看 open 函数的代码,我确定输入流首先使用 AES-CFB 进行编码(该库处理我在内部提到的初始化 vector 的所有上述问题),然后使用公钥我已经提供了。如何让它改用 AES-CBC?
最佳答案
您的问题主要归结为两个部分 - 使用 AES-256 和切换到 CBC 操作模式。我无法帮助您在 Bouncy CaSTLe 中使用 AES-256,但可以提供有关操作模式的说明。
您不能将 CBC 与 OpenPGP 一起使用。 OpenPGP 规范仅允许special variant of CFB 。如果您需要 CBC,则必须选择其他加密系统;如果将 OpenPGP 消息放在一起更重要,请坚持使用 OpenPGP CFB 模式。如果您在 CBC 模式下创建 OpenPGP 消息,它们不遵循 OpenPGP 的标准,并且其他实现(如 PGP、“普通”BouncyCaSTLe”和 GnuPG)将无法读取该消息。
关于java - 使用 BouncyCaSTLe 轻量级 API 进行 OpenPGP 加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37645113/
这是我第一次想最好检查我要安装的绑定(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 对和数据库中的加密数据
我是一名优秀的程序员,十分优秀!