【发布时间】:2014-10-05 14:39:43
【问题描述】:
在我的机构中,我们有一个脚本已经对数据库中的密码进行了大约 10 年的加密和解密(请注意,我们不要采用这样做或不这样做的最佳实践;这在我自己的社区中是一场健康的辩论,但业务需要)。它一直在使用 BouncyCastle 在 Java 1.3 上运行。
所以,本质上,我有一个非常旧的密钥库和非常旧的密码,我需要使用这些密码库,但在更新的代码库中运行,该代码库运行在具有新 Java 的升级机器上。
我们决定重写围绕该功能的代码库,这基本上也需要重写这部分。不过,基本上,代码的加密部分是相同的。现在我们将它部署到 Redhat 上的 Java 1.7。这就是我们遇到问题的地方。
我的开发机器:OSX,Java 1.7 (build 8)
我的测试机器:Redhat,Java 1.7 (build 9)
新代码在我的本地开发机器上执行得很好。 但是当我尝试将其部署到我们的测试机器时,我得到了“UnrecoverableKeyException:不匹配”。
所以在我们的测试机器上,我尝试使用 Java 1.6 来部署它——你瞧,效果很好。然后我获得了 Java 1.7 build 8(认为 build 9 是问题所在)并尝试了,但与 build 9 上的错误相同。
看来BouncyCastle:
- 在 OSX 机器上,它将在 Java 1.7 上运行
- 在 Redhat 机器上,它不能在 Java 1.7 上运行,但可以在 Java 1.6 及更低版本上运行。
我的问题是:有谁知道 Java 1.7 和 BouncyCastle 是否存在问题?我尝试浏览 BC 网站,但除了说明最新的 BC jar 与 Java 1.7 兼容之外,该网站的其余部分似乎很糟糕(很多 404)。我尝试使用谷歌搜索,但几乎所有与此异常相关的内容都引用了 Android,而且似乎不相关。
或者我在让它在 Java 1.7 上运行时缺少什么?我当然不精通 BC、PGP 或任何与加密相关的东西,老实说,我主要是在努力。哈哈
更多细节:
我正在使用 BC 声明与 JDK 1.5-1.7 兼容的 bcpg-jdk15on-151.jar
“部署”是指我正在安装到 Apache Karaf 3。
另请参阅:http://karaf.922171.n3.nabble.com/Karaf3-BouncyCastle-and-Java7-vs-Java6-td4034721.html
【问题讨论】:
标签: java bouncycastle