- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个案例需要使用 OpenPGP 加密一些文件。我正在使用 Bouncy CaSTLe 这样做。
据我了解,Bouncy CaSTLe 加密可以通过两种方式在 Java 中使用:
我将 Bouncy CaSTLe 添加为提供商并继续使用标准 Java 库。
我直接使用 Bouncy CaSTLe 库中指定的类。
我想知道这两种方法的优缺点以及推荐的方法。
此外,如果我使用的是第二种方法,那么为什么我仍然必须添加 Bouncy CaSTLe 作为安全提供程序。如果我不这样做,那么当我执行以下行时会出现“No Such Provider”异常:
PGPEncryptedDataGenerator encGen =
new PGPEncryptedDataGenerator(
new JcePGPDataEncryptorBuilder(PGPEncryptedData.CAST5).setWithIntegrityPacket(withIntegrityCheck).setSecureRandom(
new SecureRandom())
.setProvider("BC"));
最佳答案
As I understand it Bouncy Castle encryption can be used in java in two ways:
I add Bouncy Castle as a provider and continue to use the standard Java libraries.
I use the classes specified in the Bouncy Castle library directly.
I wanted to know the pros and cons of both the ways and which method is recommended.
Java JCA 是一个设计更好、当然文档也更好的 API。它具有更好定义的异常处理、更新的参数处理 (ByteBuffer
)。
此外,通过使用提供者抽象,它不仅可以通过基于软件的提供者(例如 Bouncy CaSTLe)得到增强,还可以通过平台功能和硬件提供者得到增强。因此,如果您针对 JCA 进行编程,您将获得更灵活的运行时。
另一方面,轻量级加密 API 是一个相对较低级别的 API,它以结构相对良好的方式提供更多功能。如果您使用它,您基本上是在选择 Bouncy CaSTLe 作为您唯一的功能提供者。 Bouncy CaSTLe 仅包含 Java 代码中的特定实现,这意味着您不会获得(很多)硬件支持。
Bouncy CaSTLe 的轻量级 API 没有管辖权限制(例如 128 位 AES key )。因此,如果您想解决这些限制,您可以将其用于您自己的协议(protocol)(如果您可以下载等效的库,请不要让我开始解释这些限制首先存在的原因没有问题)。
Also if I am using the second approach then why do I still have to add Bouncy Castle as a security provider. If I do not do so then I get a "No Such Provider" exception (...) ?
Bouncy CaSTLe PGP 功能实际上是建立在 JCA 之上的;就这么简单。否则,您将无法使用 Java key 或其他(平台或硬件)加密功能。
许多其他软件组件也假定使用 JCA。您不能简单地将轻量级 API 插入现有协议(protocol)实现中。
关于java - 作为供应商的 Bouncy CaSTLe 与 Bouncy CaSTLe API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37254316/
我有一个案例需要使用 OpenPGP 加密一些文件。我正在使用 Bouncy CaSTLe 这样做。 据我了解,Bouncy CaSTLe 加密可以通过两种方式在 Java 中使用: 我将 Bounc
我想创建一个使用 Bouncy CaSTLe(版本 1.59)实现的 signedAndEnvelopedData (PKCS #7) 数据。 在 Bouncy CaSTLe 中,接口(interfa
我发现了一些使用 Bouncy CaSTLe 加密数据的代码,但我找不到任何文档来说明正在使用哪种算法来加密数据或 key 使用了多少位。我也找不到 Bouncy CaSTLe 的论坛。有谁知道它使用
这个问题已经有答案了: bouncycastle + JBoss AS7: JCE cannot authenticate the provider BC (5 个回答) 已关闭10 年前。 我使用的
我的系统中有一个进程将接收随机纯文本或密文输入。由于性能不是问题,我打算尝试解密所有传入的输入,使用如下伪代码: //get the input, either a plain text, or ci
我一直认为使用 ECFieldElement 对象而不是 BigIntegers 对指数执行算术运算更合适,但根据我的测试,这样做会产生不正确的结果。 测试例程(JUnit): class Arith
我正在尝试从 smime.p7s 文件中读取证书,证书链是: Baltimora Cyber Trust --> DigitPA --> Aruba PEC 因此,当我尝试提取时,我只检索到最后两
我正试图找到一种方法来消除移动设备上的 flex 滚动行为(例如,当下面没有内容可滚动时,您仍然可以滚动内容并将内容滚动到顶部,当释放时它会弹跳返回) 我的html结构是这样的
我正在使用来自Codyhouse的这个很棒的弹性过滤器但我一生都无法弄清楚如何让它自动运行,即自行翻转并仍然接受用户点击事件。 jsfiddle ...谢谢。 jQuery(document).rea
考虑正数的以下定义: 如果从左到右它的数字永远不会变小,则该数字是非递减的。例如,12345和 3388 是非递减的。 如果从左到右它的数字从不变大,则该数是非递增的。例如,987542 和881个没
我使用 WPF ScrollViewer 来托管一些控件。我真的很希望它能像在触摸设备上那样进行交互,当你将它拉得太远时,它会慢慢回到原位。 它没有滚动条 - 我使用此代码通过单击和拖动手动滚动鼠标:
我有一个使用 Bouncy CaSTLe 进行 PGP 解密的应用程序,它在过去 8 个月左右的时间里运行没有任何问题,而在过去的 2 天里突然出现了一个问题,其中 GetDataStream 方法抛
我有一个 PEM 或 DER 私钥,一个现有的 key 。如何加载此 key PrivateKeyFactory.createKey or into an AsymmetricCipherKeyPai
我正在查看 Bouncy CaSTLe,看看它的哈希算法的性能与 .NET Framework 的性能相比如何,它看起来不太好; MD5 实现比 .NET 慢 6 倍左右,SHA256 实现比 .NE
我正在寻找 Bouncy CaSTLe PGP“签名和加密”的实现。理想情况下,如果这有什么不同的话,只需一次操作即可。 我已经采取了 encrypt example和 signing example
我正在按照此处的示例:http://www.baeldung.com/java-bouncy-castle 我有几个问题: public static byte[] encryptData(byte[
我正在尝试用 C# 签署比特币交易。我有 2 位代码正在尝试完成。我可以使用 Bouncy caSTLe 创建一组私钥和公钥。我可以将其转换为钱包导入格式。 我还可以从 ECDSA 公钥生成比特币地址
我正在查看 Bouncy CaSTLe,看看它的哈希算法的性能与 .NET Framework 的性能相比如何,它看起来不太好; MD5 实现比 .NET 慢 6 倍左右,SHA256 实现比 .NE
我很确定没有,但我想确认 Bouncy CaSTLe for Java 中的 SCrypt 实现 SCrypt.generate() 是否在结果中包含参数(例如NodeJS 的实现确实如此)。 最佳答
我正在使用 bouncy caSTLe 1.48 通过 OCSP 验证证书验证。效果很好。但我使用 Ocsp Url 作为静态变量,我想从证书中读取它。证书中的 URL 写为Authority Inf
我是一名优秀的程序员,十分优秀!