当前位置: 首页 > 知识库问答 >
问题:

Bouncy Castle作为提供程序V/S Bouncy Castle API

尚嘉庆
2023-03-14

我有一个需要使用OpenPGP加密一些文件的案例。我正在使用弹力城堡这样做。

另外,如果我使用的是第二种方法,那么为什么还要添加Bouncy Castle作为安全提供程序。如果我不这样做,那么当我执行以下行时,我会得到一个“没有这样的提供程序”异常:

PGPEncryptedDataGenerator encGen =
            new PGPEncryptedDataGenerator(
            new JcePGPDataEncryptorBuilder(PGPEncryptedData.CAST5).setWithIntegrityPacket(withIntegrityCheck).setSecureRandom(
            new SecureRandom())
            .setProvider("BC"));

共有1个答案

燕禄
2023-03-14

据我所知,Bouncy Castle加密可以通过两种方式在java中使用:

>

  • 我将Bouncy Castle添加为提供程序,并继续使用标准Java库。

    我直接使用Bouncy Castle库中指定的类。

    Java JCA是一个设计得更好、文档更好的API。它定义了更好的html" target="_blank">异常处理和更最新的参数处理(bytebuffer)。

    此外,通过使用提供商抽象,不仅可以通过基于软件的提供商(如Bouncy Castle)来增强它,还可以通过平台功能和硬件提供商来增强它。因此,如果您针对JCA编程,您将获得更灵活的运行时。

    另一方面,轻量级加密API是一个相对较低级别的API,它以相对良好的结构方式提供了更多的功能。如果您使用它,您基本上选择Bouncy Castle作为您唯一的功能提供商。Bouncy Castle仅包含Java代码中的特定实现,这意味着您不会得到(太多)硬件支持。

    Bouncy Castle PGP功能实际上是在JCA的基础上构建的;就这么简单。如果不是,您就不能使用Java密钥或其他(平台或硬件)加密功能。

    许多其他软件组件也假定要使用JCA。您不能简单地将轻量级API插入到现有的协议实现中。

  •  类似资料:
    • 你好Stackoverflow社区, 在尝试编译使用bouncycastle安全提供程序的maven项目时,我得到了以下错误:我知道必须对jar进行签名,因此我将此添加到pom.xml中以防止编译错误: 基于此(bouncycastle provider找不到算法所需的类),我添加了以下内容:,并且在公共静态void main中添加了具有以下内容的提供程序:。 不幸的是,这没有奏效。对于如何实现上

    • 问题内容: 我正在尝试使用bouncycastle使用公共密钥来加密文件。我已经通过编程方式注册了提供程序: 我成功创建了公共密钥对象。 当我使用PGPEncryptedDataGenerator和密钥加密文件时,出现ClassNotFound异常。 似乎提供程序在运行时找不到此类,尽管我确定我有它的jar … 我在Tomcat上运行我的应用程序。使用Maven处理依赖关系- 我放入的充气城堡ja

    • 我有一个使用bouncycastle库的Java applet。当我在Eclipse上运行应用程序时,一切正常,但当我在带有标记的浏览器上使用applet时,当我添加安全BouncyCastleProvider时,它会引发异常。 我的stackTrace是: 我正在使用bcpkix-jdk15on-1.48.jar和bcprov-jdk15on-1.48.jar版本的BouncyCastle。为什

    • 在Java8上运行的一小部分示例代码中,我试图遵循bc-fips-1.0.2.jar用户指南Legion of the Bouncy Castle Inc. BC-FJA 1.0.2(Bouncy Castle FIPSJavaAPI)用户指南Date: 09/14/19: 注意:对FIPS模式的支持在Java 1.9中似乎已经开始消失,已经确认从Java 11开始它是一个空操作。对于Java 1

    • 在Java8中,我通过执行以下步骤全局注册了Bouncy Castle安全提供程序: null

    • 我已经在文件中添加了所有相关build.gradle依赖项。尽管如此,当我尝试运行调用SOAP服务时,还是会出现以下错误。共享依赖项部分和错误详细信息。使用Java11。网上已经有很多答案,但似乎都不起作用。任何帮助/建议将是值得赞赏的。 低于错误跟踪