2

我需要在 IBM Websphere 上运行的应用程序中使用 Sun JCE 提供程序。这可以通过指定 security_provider.1=com.sun.crypto.provider.SunJCE 来实现。我的应用程序的某些部分使用了 IBM 的 SSL 工具。

我想知道配置 SunJCE 提供程序是否会影响 JSSE 提供程序在我的应用程序其他部分的使用。

我想问的另一个问题是,有什么方法可以继续使用 IBM JDK 默认值(JCE< JSSE 和其他),并在需要时仅使用 Sun JCE。我的意思是我会将 Sun JCE Provider 配置为最后一个 security_provider.10。在我需要使用 Sun JCE 提供程序的代码库中,我将在我的 Crypto 相关类中明确提供提供程序名称。对于前 Cipher cip = Cipher.getInstance("DES","Sun")..

请让我知道哪种方法最好。

4

1 回答 1

3

要指定安全提供者,您应该按照您所说的那样做:

Cipher cip = Cipher.getInstance("DES","Sun")

但是Sun的供应商叫“SunJCE”,IBM的叫“IBMJCE”。您也可以使用第三方提供商作为 BouncyCastle。您应该注意“ProviderNotFound”异常。

这将使用 Sun 实现:

Cipher cip = Cipher.getInstance("DES","SunJCE")

这将使用 IBM 实现:

Cipher cip = Cipher.getInstance("DES","IBMJCE")

如果您使用的是 IBM SDK,这将执行相同的操作:

Cipher cip = Cipher.getInstance("DES")

顺便说一句,如果您将 Sun 提供程序安装(编辑安全 SDK 文件)作为 LAST 提供程序,这不会以任何方式影响您的应用程序,因为当您查找算法时,JCE API 将查找第一个提供程序实例,然后是第二个,依此类推(当它找到算法时,它会停止)。

于 2009-10-26T11:45:23.833 回答