2017-05-27 71 views
2

這是我的加密DB:安全隨機種子和Derby數據庫創建

私有靜態最後絃樂EMBEDDEDDRIVER = 「org.apache.derby.jdbc.EmbeddedDriver」; 「dbdb:derby:./ db; create = true; dataEncryption = true; bootPassword = somepassword; encryptionProvider = org.bouncycastle.jce.provider.BouncyCastleProvider; encryptionAlgorithim = AESEngine/CFBBlockCipher/NoPadding; sqlAutorization = true」;

我延長了JCE罐子我的JDK安全並取得供應商的優先級如下: security.provider.1 = org.bouncycastle.jce.provider.BouncyCastleProvider security.provider.2 = sun.security.provider.Sun

,當我試圖創建數據庫...我得到這個異常:

產生的原因:在org.bouncycastle.crypto.prng.SP800SecureRandom.setSeed(來源不明) java.lang.StackOverflowError的 在org.bouncycastle.jcajce.provider.drbg.DRBG $ Default.engineSetSeed(Unknown Source) at java.security.Se cureRandom.setSeed(SecureRandom.java:427)

我只是想創建一個數據庫..在這個階段種子必須做什麼(原諒我,因爲我非常新鮮的加密) 如果有答案同樣的問題,我希望你指示我或讓我回答...兩種方式表示讚賞。

回答

1

那麼..逆轉供應商的優先事項解決了這個問題。

0

我在WebLogic同樣的錯誤,我通過複製提供商BouncyCastle的JAR中的文件(不論其中:bcprov-jdk15on-159.jarbcprov-ext-jdk15on-159.jar)解決它在JRE的lib/ext文件夾中。 當我得到錯誤時,我只複製了bcprov-jdk15on-159.jar而不是其他的。