`
hongsoft
  • 浏览: 302454 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

BouncyCastle JCE实践(一)

阅读更多
?

JCE 基础

JAVA安全体系结构分析<!----><o:p></o:p>

?下图显示了JAVA安全体系结构的标准组件。在图的下半部分,是JAVA2安全体系结构的核心和JAVA加密体系结构(JCAJava Cryptography Architecture),两者构成JAVA2平台所带的JAVA2安全平台。在图的上半部分,是独立于JAVA2平台而又与JAVA2平台的不同方面相关的JAVA安全扩展。<!----><v:rect id="_x0000_s1028" style="MARGIN-TOP: 15.6pt; Z-INDEX: 3; LEFT: 0px; MARGIN-LEFT: 162pt; WIDTH: 81pt; POSITION: absolute; HEIGHT: 46.8pt; TEXT-ALIGN: left"><v:textbox style="mso-next-textbox: #_x0000_s1028"></v:textbox></v:rect><v:rect id="_x0000_s1027" style="MARGIN-TOP: 15.6pt; Z-INDEX: 2; LEFT: 0px; MARGIN-LEFT: 45pt; WIDTH: 90pt; POSITION: absolute; HEIGHT: 46.8pt; TEXT-ALIGN: left"><v:textbox style="mso-next-textbox: #_x0000_s1027"></v:textbox></v:rect>?

<o:p></o:p>???????? 从上图可以看出,Java平台为安全和加密服务提供了两组API:JCA和JCE。?JCA?(Java?Cryptography?Architecture)提供基本的加密框架,如证书、数字签名、消息摘要和密钥对产生器;?JCE在JCA的基础上作了扩展,包括加密算法、密钥交换、密钥产生和消息鉴别服务等接口。<o:p></o:p>

JCA与JCE????
??? JCA/JCE并不执行各种算法,它们只是连接应用和实际算法实现程序的一组接口。软件开发商根据JCE接口,将各种算法实现后,打包成一个Provider,可以动态地加到Java运行环境中。由于美国出口控制规定,JCA?是可出口的(JCA和一个Sun的默认实现包括在Java2中),但是JCE对部分国家是限制出口的。因此,要实现一个完整的安全结构,就需要一个或多个第三方厂商提供的JCE产品,称为安全供应者。
BouncyCastle JCE就是其中的一个安全供应者。<o:p></o:p>

???? 安全供应者是承担特定安全机制的实现的第三方。有些供应者是完全免费的,而另一些供应者则需要付费。提供安全供应者的公司有IBM,Bouncy Castle等,Sun提供了如何实现开发人员自己供应者的细节。Bouncy Castle提供了可以在J2ME/J2EE/J2SE平台得到支持的API,而且他的API是免费的。详情参见:http://www.bouncycastle.org/

?

?

hongbo781202,又名HongSoft,职业程序员,研究领域:1)基于工作流的BPM系统研究2)基于JAVA的信息安全

技术.欢迎和大家讨论JAVA相关各方面技术和市场问题 hongbosoftware@163.com<o:p></o:p>

?<o:p></o:p>

分享到:
评论

相关推荐

    开源加密库Bouncy Castle Crypto APIs (RSA加密)

    在Java中,Bouncy Castle的`org.bouncycastle.jce.provider.BouncyCastleProvider`提供了一个强大的安全提供者,可以用来生成和管理RSA密钥对。在生成密钥对后,可以将其导出为PEM格式的字符串,如以下代码所示: `...

    bouncycastle jar包,版本: jdk15to18-1.73

    标题提及的"bouncycastle jar包,版本: jdk15to18-1.73",是指针对Java 1.5至1.8版本的Bouncy Castle库的1.73版,提供了两个jar文件:bcprov-ext-jdk15to18-1.73.jar和bcprov-jdk15to18-1.73.jar。 1. **Bouncy ...

    bouncycastle-java5

    例如,如果你需要创建一个RSA密钥对,可以使用`org.bouncycastle.jce.provider.BouncyCastleProvider`作为安全提供者,然后调用`KeyPairGenerator`的相关方法。对于数据加密解密,可以通过`Cipher`类,指定对应的...

    java生成X509证书jar包

    BouncyCastle库提供了`org.bouncycastle.jce.provider.BouncyCastleProvider`类,它是Java加密服务提供者,包含了国密算法的支持。为了使用它,需要在代码中添加以下行: ```java Security.addProvider(new ...

    RSA.rar_RSA 界面_bcprov-jdk14-123.jar_org.bouncycastle_rsa_rsa jav

    代码可能会使用Bouncy Castle库中的类,如`org.bouncycastle.jce.provider.BouncyCastleProvider`,来实现RSA算法的功能。 为了进一步理解这个程序,你需要阅读并分析RSA.txt中的代码。如果你不熟悉Java或加密算法...

    java配置加密组件bouncy_castle

    import org.bouncycastle.jce.provider.BouncyCastleProvider; // 添加Bouncy Castle提供商 Security.addProvider(new BouncyCastleProvider()); // 创建AES密钥 SecretKey key = KeyGenerator.getInstance...

    bcprov-jdk15on-1.68.jar中文-英文对照文档.zip

    这个库是Bouncy Castle提供的,Bouncy Castle是一个著名的开源密码学软件项目,提供了大量的加密算法、协议实现以及相关的工具。"jdk15on"表示这个版本适用于Java 1.5及以上版本。 Bouncy Castle库分为两部分:...

    bcprov-jdk15on-1.59.jar

    然后,通过Java Cryptography Extension (JCE) API来调用Bouncy Castle提供的加密服务。 5. **安全性** 由于加密技术的快速发展,保持库的更新非常重要。定期升级到最新版本的Bouncy Castle可以帮助抵御新的安全...

    bcprov-jdk15on-146.zip

    在Android平台上,由于默认的Java Cryptography Extension (JCE)有一些限制,如不能处理高强度的加密算法,Bouncy Castle就成为了一个理想的替代方案。 首先,我们需要下载Bouncy Castle的jar包,这里我们看到的...

    SM2,SM3,SM4 Spring boot 开发实例

    2. **生成密钥对**:使用BouncyCastle的`ECKeyPairGenerator`生成SM2密钥对。 3. **加密和解密**:使用密钥对进行加密和解密操作。 ### 2. SM3 哈希函数 **SM3** 是一种密码学哈希函数,类似于SHA-256,但具有中国...

    使用Java开发和信息安全相关的程序

    总的来说,Java提供了丰富的库和API来支持信息安全的开发,包括JCE、Bouncy Castle Provider以及其他相关的工具类和接口。开发者需要掌握这些工具的使用,同时了解信息安全的基本理论,才能有效地构建安全的应用程序...

    openPGP加解密示例.docx

    在Java中实现OpenPGP的加解密功能,通常需要依赖BouncyCastle库,这是一个强大的加密工具包,包含了对OpenPGP的支持。 在开始之前,需要下载并安装两个关键的BouncyCastle JAR包:`bcprov-jdk15on`和`bcpg-jdk15on`...

    消息摘要所需jar包(commons-codec-1.4.jar&bcprov-jdk15on-154.jar)

    另一方面,“bcprov-jdk15on-154.jar”是Bouncy Castle提供的一个Java加密库,它提供了广泛的加密算法,包括对称加密、非对称加密、数字签名以及消息摘要算法。Bouncy Castle库特别适合处理更高级的密码学需求,比如...

    java使用winzipaes打包必须包

    3. **BCryptprov-jdk16-146.jar**:这个文件是Bouncy Castle提供的Java Cryptography Extension (JCE)提供者。Bouncy Castle是一个开放源代码的安全库,它提供了许多加密算法,包括AES。在使用WinZipAES时,可能需要...

    Java公钥加密算法RSA.rar

    import org.bouncycastle.jce.provider.BouncyCastleProvider; ``` 注意,如果使用了BouncyCastle提供者,需要先添加到JVM中,因为它包含了更强大的加密功能。 2. 创建KeyPairGenerator实例并初始化: ```java ...

    java加密网址分享

    import org.bouncycastle.jce.provider.BouncyCastleProvider; Security.addProvider(new BouncyCastleProvider()); Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding", "BC"); SecretKeySpec ...

    ABAP-AES-JAVA加密解密(带附件SE24-AES.RAR、JAVA-AES.RAR及测试案例)

    此外,还需要引入几个第三方库,如bcprov-jdk16-146.jar(Bouncy Castle加密库),commons-codec-1.9.jar和commons-lang3-3.0.1.jar,以支持加密和解密操作。 4. **加密和解密的互操作性**:在ABAP和JAVA之间进行...

    ssh2所需的全部最小jar包

    在某些情况下,为了使用Bouncy Castle提供的特定功能,可能需要将其jar文件(如`bcprov-jdk15on-xx.x.x.jar`)加入到项目的类路径中。 4. **其他辅助库**:SSH2的实现可能还需要一些辅助库,例如处理ASN.1编码的库...

    基于IBE的PKG程序设计(Java)

    2. **相应的jar包**:这些可能是已经编译好的IBE相关的库文件,用于支持IBE的实现,例如Bouncy Castle等安全库,它们提供了加密算法和数学运算的支持。 由于“没有设计main函数”,这意味着项目并不直接可执行,它...

Global site tag (gtag.js) - Google Analytics