这是我的加密数据库:
private static final String EMBEDDEDDRIVER =" org.apache.derby.jdbc.EmbeddedDriver&#34 ;; " JDBC:德比:./分贝;创建= TRUE; dataEncryption = TRUE; bootPassword = somepassword; encryptionProvider = org.bouncycastle.jce.provider.BouncyCastleProvider; encryptionAlgorithim = AESEngine / CFBBlockCipher / NoPadding; sqlAutorization =真" ;
我将JCE jar扩展到我的jdk安全性并使提供者优先级如下: security.provider.1 = org.bouncycastle.jce.provider.BouncyCastleProvider security.provider.2 = sun.security.provider.Sun
当我尝试创建数据库时......我得到了这个例外:
引起:java.lang.StackOverflowError 在org.bouncycastle.crypto.prng.SP800SecureRandom.setSeed(未知来源) at org.bouncycastle.jcajce.provider.drbg.DRBG $ Default.engineSetSeed(Unknown Source) 在java.security.SecureRandom.setSeed(SecureRandom.java:427)
我只是想创建一个数据库..在这个阶段种子必须做什么(原谅我,因为我对加密非常新鲜) 如果有相同问题的答案,我希望你指导我或给我一个答案......两种方式都赞赏。
答案 0 :(得分:1)
嗯..扭转提供商的优先级解决了这个问题。
答案 1 :(得分:0)
我在weblogic中遇到了同样的错误,我通过在JRE的UICollectionView
文件夹中复制Providers BouncyCastle JARS文件(它们都是bcprov-jdk15on-159.jar
和bcprov-ext-jdk15on-159.jar
)来解决它。
当我收到错误时,我只复制了lib/ext
而不复制了另一个。