确保随机种子和德比数据库创建



这是我的加密数据库:

private static final String EMBEDDEDDRIVER = "org.apache.derby.jdbc.EmbeddedDriver"; "JDBC:Derby:./db;创建=真;数据加密=真;bootPassword=somepassword;encryptionProvider=org.bouncycastle.jce.provider.BouncyCastleProvider;encryptionAlgorithim=AESEngine/CFBBlockCipher/NoPadding;sqlAutorization=true";

我将 JCE jar 扩展到我的 jdk 安全性,并使提供程序优先级如下所示: security.provider.1=org.bouncycastle.jce.provider.BouncyCastleProvider security.provider.2=sun.security.provider.Sun

当我尝试创建数据库时...我得到这个例外:

原因:java.lang.StackOverflowError at org.bouncycastle.crypto.prng.SP800SecureRandom.setSeed(未知来源) at org.bouncycastle.jcajce.provider.drbg.DRBG$Default.engineSetSeed(未知来源) at java.security.SecureRandom.setSeed(SecureRandom.java:427)

我只是在尝试创建一个数据库..种子在这个阶段必须做什么(请原谅我,因为我对加密非常新鲜) 如果有相同问题的答案,我希望您指导我或给我一个答案......两种方式都表示赞赏。

嗯..颠倒提供者优先级解决了这个问题。

我在weblogic中遇到了同样的错误,我通过在JRE的文件夹中复制提供者BouncyCastle JARS文件(它们都是:bcprov-jdk15on-159.jarbcprov-ext-jdk15on-159.jar)来解决lib/ext。 当我收到错误时,我只复制了bcprov-jdk15on-159.jar而不是另一个。

相关内容