?
JCE 基础
JAVA安全体系结构分析<!----><o:p></o:p>
?下图显示了JAVA安全体系结构的标准组件。在图的下半部分,是JAVA2安全体系结构的核心和JAVA加密体系结构(JCA,Java 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>
分享到:
相关推荐
在Java中,Bouncy Castle的`org.bouncycastle.jce.provider.BouncyCastleProvider`提供了一个强大的安全提供者,可以用来生成和管理RSA密钥对。在生成密钥对后,可以将其导出为PEM格式的字符串,如以下代码所示: `...
标题提及的"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 ...
例如,如果你需要创建一个RSA密钥对,可以使用`org.bouncycastle.jce.provider.BouncyCastleProvider`作为安全提供者,然后调用`KeyPairGenerator`的相关方法。对于数据加密解密,可以通过`Cipher`类,指定对应的...
BouncyCastle库提供了`org.bouncycastle.jce.provider.BouncyCastleProvider`类,它是Java加密服务提供者,包含了国密算法的支持。为了使用它,需要在代码中添加以下行: ```java Security.addProvider(new ...
代码可能会使用Bouncy Castle库中的类,如`org.bouncycastle.jce.provider.BouncyCastleProvider`,来实现RSA算法的功能。 为了进一步理解这个程序,你需要阅读并分析RSA.txt中的代码。如果你不熟悉Java或加密算法...
import org.bouncycastle.jce.provider.BouncyCastleProvider; // 添加Bouncy Castle提供商 Security.addProvider(new BouncyCastleProvider()); // 创建AES密钥 SecretKey key = KeyGenerator.getInstance...
这个库是Bouncy Castle提供的,Bouncy Castle是一个著名的开源密码学软件项目,提供了大量的加密算法、协议实现以及相关的工具。"jdk15on"表示这个版本适用于Java 1.5及以上版本。 Bouncy Castle库分为两部分:...
然后,通过Java Cryptography Extension (JCE) API来调用Bouncy Castle提供的加密服务。 5. **安全性** 由于加密技术的快速发展,保持库的更新非常重要。定期升级到最新版本的Bouncy Castle可以帮助抵御新的安全...
在Android平台上,由于默认的Java Cryptography Extension (JCE)有一些限制,如不能处理高强度的加密算法,Bouncy Castle就成为了一个理想的替代方案。 首先,我们需要下载Bouncy Castle的jar包,这里我们看到的...
2. **生成密钥对**:使用BouncyCastle的`ECKeyPairGenerator`生成SM2密钥对。 3. **加密和解密**:使用密钥对进行加密和解密操作。 ### 2. SM3 哈希函数 **SM3** 是一种密码学哈希函数,类似于SHA-256,但具有中国...
总的来说,Java提供了丰富的库和API来支持信息安全的开发,包括JCE、Bouncy Castle Provider以及其他相关的工具类和接口。开发者需要掌握这些工具的使用,同时了解信息安全的基本理论,才能有效地构建安全的应用程序...
在Java中实现OpenPGP的加解密功能,通常需要依赖BouncyCastle库,这是一个强大的加密工具包,包含了对OpenPGP的支持。 在开始之前,需要下载并安装两个关键的BouncyCastle JAR包:`bcprov-jdk15on`和`bcpg-jdk15on`...
另一方面,“bcprov-jdk15on-154.jar”是Bouncy Castle提供的一个Java加密库,它提供了广泛的加密算法,包括对称加密、非对称加密、数字签名以及消息摘要算法。Bouncy Castle库特别适合处理更高级的密码学需求,比如...
3. **BCryptprov-jdk16-146.jar**:这个文件是Bouncy Castle提供的Java Cryptography Extension (JCE)提供者。Bouncy Castle是一个开放源代码的安全库,它提供了许多加密算法,包括AES。在使用WinZipAES时,可能需要...
import org.bouncycastle.jce.provider.BouncyCastleProvider; ``` 注意,如果使用了BouncyCastle提供者,需要先添加到JVM中,因为它包含了更强大的加密功能。 2. 创建KeyPairGenerator实例并初始化: ```java ...
import org.bouncycastle.jce.provider.BouncyCastleProvider; Security.addProvider(new BouncyCastleProvider()); Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding", "BC"); SecretKeySpec ...
此外,还需要引入几个第三方库,如bcprov-jdk16-146.jar(Bouncy Castle加密库),commons-codec-1.9.jar和commons-lang3-3.0.1.jar,以支持加密和解密操作。 4. **加密和解密的互操作性**:在ABAP和JAVA之间进行...
在某些情况下,为了使用Bouncy Castle提供的特定功能,可能需要将其jar文件(如`bcprov-jdk15on-xx.x.x.jar`)加入到项目的类路径中。 4. **其他辅助库**:SSH2的实现可能还需要一些辅助库,例如处理ASN.1编码的库...
2. **相应的jar包**:这些可能是已经编译好的IBE相关的库文件,用于支持IBE的实现,例如Bouncy Castle等安全库,它们提供了加密算法和数学运算的支持。 由于“没有设计main函数”,这意味着项目并不直接可执行,它...