作者: BUILDER.COM
Wednesday, July 3 2002 11:32 AM
Java加密扩展(JCE)现在已经成为Java SDK 1.4的核心组成部分。JCE基本上是一组提供加密框架和实现、密钥生成和协商以及消息认证代码(MAC)算法的Java包。
不过你可得注意了,虽然JCE目前是Java SDK 1.4核心组成包,不过我们将演示如何用Java SDK 1.2 或者更高版本对其进行配置。此外,本文还要讨论如何在动态安装的情况下使用安全供应者。最后我会演示创建密钥和密码的过程,以及如何实施基本的数据加密和解密。
--------------------------------------------------------------------------------
什么是安全供应者?
安全供应者就是承担特定安全机制的实现。有些供应者是完全免费的,而另一些供应者则需要付费。提供安全供应者的公司有IBM、Bouncy Castle和RSA等。今后我们将对Bouncy Castle的RSA实现做阐述。Sun 提供了如何实现你自己供应者的细节。
--------------------------------------------------------------------------------
静态安装
在使用或安装JCE之前,你必须首先从Sun的网站获取相关的Java库。JCE包含了Sun自产的安全供应者SunJCE。为了在你的默认供应者列表中静态添加SunJCE,你需要编辑安全属性文件;
\jre\lib\security\java.security (Win32)
/jre/lib/security/java.security (UNIX)
比方说,假如你在Windows计算机的C:\jdk1.3文件夹下面安装了JDK,那么你需要编辑如下文件:
C:\jdk1.3\jre\lib\security\java.security
为了安装SunJCE你还得在以上文件中添加以下代码行:
security.provider.n=com.sun.crypto.provider.SunJCE
请用正确的供应者替代以上代码中的 n。
程序清单A 演示了如何查看安装供应者的信息。程序清单B所示的输出结果显示了供应者的支持信息,比如可用算法等。
动态安装
程序清单C 所示为运行时动态装载供应者的情况。必须指出,当你在调用Security.addProvider(…)的时候,供应者对整个JVM可用。
如上所述,当你在安装供应者的时候,你必须提供一个数字表示其优先级。在调用实现时, JVM会根据优先级搜索整个安装的安全供应者并用找到的第1个供应者实现请求的算法。你还可以通过在方法调用中包含其他参数的方法显式地调用给定的供应者,以后我们可以了解这一点。