2012-02-07 67 views

回答

0

JCEKS是與JCE一起引入的SUN格式類型。

這並不意味着它僅受SUN/Oracles的JDK支持。

您應該也可以在IBM JDK中使用它(當然,使用IBM提供程序)。退房IBM Security

+2

我已經試過了,雖然IBM JDK支持JCEKS,但它不能加載由等效的Sun JDK創建的JCEKS密鑰庫。獲取異常「java.io.IOException:com.sun.crypto.provider.SealedObjectForKeyProtector at com.ibm.crypto.provider.JceKeyStore.engineLoad(Unknown Source)at java.security.KeyStore.load(KeyStore.java:414) 「 - 有趣的是,由IBM JDK keytool創建的KeyStore似乎在Sun/Oracle JDK中加載時工作正常。 – ammianus 2013-04-17 20:40:53

+0

@ammianus:我不覺得很難相信這一點,甚至沒有嘗試它。我經歷了IBM和SUN之間的許多差異,它並不讓我感到驚訝。感謝分享 – Cratylus 2013-04-18 09:26:00

+0

謝謝,但實際上我對我的評論有一個更正。我在測試中發現錯誤,導致太陽側的密鑰存儲文件錯誤。在Sun JRE上加載時,IBM keytool生成的JCEKS密鑰庫也失敗:java.security.UnrecoverableKeyException:com.ibm.crypto.provider.DESedeKey \t at com.sun.crypto.provider.SunJCE_z.a(DashoA13 * ..) – ammianus 2013-04-24 17:27:08

1

IBM的JDK無法加載使用SUN的JDK創建的密鑰庫。因此,在IBM機器上,如果您想使用密鑰庫,則應該僅使用IBM的JDK創建它。

要使用IBM的JDK創建新的密鑰庫,請參閱this

1

您可以將IBMJCE與使用SunJCE創建的JCEKS密鑰庫一起使用。有可能使用keytool密碼既爲密鑰庫提供密碼,也爲securekey本身提供單獨的密碼。當使用keyman IBM密鑰管理器或您自己的類與IBMJCE從JCEKS獲取安全密鑰時,您可能會收到com.sun.crypto.provider.SealedObjectForKeyProtector錯誤。解決方法是將密鑰庫和securekey的密碼設置爲相同的值。

相關問題