问题描述
||
我想将Oracle JDK配置为使用IBM的FIPS兼容JCE / JSSE安全提供程序。我需要什么JAR文件,应该在哪里安装?
java.security
文件中的提供者列表应该是什么样的?
解决方法
我在sun jdk5上使用IBMJCE,它工作正常。我想这可能类似于菲普斯
您需要ibmjceprovider.jar,ibmpkcs.jar,ibmjcefips.jar
您可以在ibm jre中找到它们
像这样的代码
static{
//install ibm\'s provider
java.security.Security.addProvider(new IBMJCE());
}
public byte[] encrypt(byte[] input)throws SecurityException{
KeyGenerator kg = KeyGenerator.getInstance(\"DES\");
//call ibm\'s provider
SecureRandom sr = SecureRandom.getInstance(\"IBMSecureRandom\",new IBMJCE());
sr.setSeed(str.getBytes());
kg.init(sr);
Key key = kg.generateKey();
Cipher cipher = Cipher.getInstance(\"DES\");
cipher.init(1,key);
byte[] ret = cipher.doFinal(input);
return ret;
}
,这是一个旧帖子,但无论如何...
将IBM JVM配置为使用IBMJCEFIPS提供程序时,它符合FIPS。
但是,这仅适用于IBM Java。
不要将罐子放在SUN JDK中。
对于SUN,您应该使用同样符合FIPS的NSS项目
,根据此IBM文档,FIPS认可的提供程序仅可用于IBM SDK。
另一个提示(因为我最初认为Solaris上的WebSphere运行在Oracle JVM上):在Solaris上的WebSphere MQ要求中,有一条注释清楚地指出:
仅IBM SDK支持FIPS合规性
实际上,在Solaris平台上,IBM SDK是基于Sun / Oracle JVM构建的,但是有很多更改(ORB和安全性...)。