2

这是我的加密数据库:

私有静态最终字符串 EMBEDDEDDRIVER = "org.apache.derby.jdbc.EmbeddedDriver"; "jdbc:derby:./db;create=true;dataEncryption=true;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(Unknown Source) at org.bouncycastle.jcajce.provider.drbg.DRBG$Default.engineSetSeed(Unknown Source) at java.security.SecureRandom .setSeed(SecureRandom.java:427)

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

4

2 回答 2

1

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

于 2017-05-27T14:28:56.313 回答
0

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

于 2018-02-08T11:24:54.323 回答