我们正在使用Java security API生成一个数字签名(PKCS7)。摘要算法为SHA-256,加密算法为RSA (SHA256withRSA)。
使用本地计算机中的SunRsaSign提供程序,在某些内容上生成签名。使用WAS 8.0.0.2中的IBMJCE提供程序,我们能够在相同的内容上生成相同的签名。
然而,问题是,我们必须迁移回WAS 6.1。现在,生成的签名与上述两种情况下生成的签名不同。我检查了在所有3个案例中创建的消息摘要,它在所有3个案例中都是相同的,但签名在WAS 6.1中是不同的。
WAS6.1的IBMJCE提供者在SHA256withRSA加密方面有什么已知的问题吗?如果有任何建议,我们将非常感谢。谢谢
发布于 2013-11-24 21:28:12
真的有问题吗?据我所知,这必须适用于
signature = sign(message)
verify(signature) == message
并不要求所有签名都必须相同。那么你对这些签名的验证真的有问题吗?
发布于 2014-01-10 00:02:28
我们遇到了同样的问题,我们强迫Webspshere使用SUNJCE。以下是步骤。
因此,在IBM Websphere控制台中,转到应用程序服务器>服务器>流程定义> Java虚拟机
查找通用JVM参数并添加以下内容。
-DamCryptoDescriptor.provider=SunJCE -DamKeyGenDescriptor.provider=SunJCE
然后复制
C:\JAVA\jdk1.6.0_34\jre\lib\ext\sunjce_provider.jar
至
C:\Program Files\IBM\SDP\runtimes\base_v7\java\jre\lib\ext\sunjce_provider.jar
变化
C:\Program Files\IBM\SDP\runtimes\base_v7\java\jre\lib\security\java.security
通过将以下Sun提供程序添加到java.security文件的提供程序列表中。
#This will help Websphere to load
security.provider.13=com.sun.crypto.provider.SunJCE
security.provider.14=sun.security.provider.Sun
security.provider.15=sun.security.rsa.SunRsaSign
security.provider.16=sun.security.jgss.SunProvider
希望这能有所帮助。
https://stackoverflow.com/questions/15945969
复制相似问题