有弹性的城堡:需要bcprov-jdk15和bcprov-jdk16

时间:2018-11-16 19:36:28

标签: java cryptography

在我的项目路径上可以看到bcprov-jdk15和bcprov-jdk16。是否存在我们同时需要两者的情况?

3 个答案:

答案 0 :(得分:2)

15和16指向JRE 1.5和1.6以实现兼容性。您的版本最多为1.46 ,因为这是JDK 1.5和1.6分别针对的最新版本。 1.46版本was created on February 2011。当前版本是2018年7月的1.60。

因此您既不需要也不需要这些罐子。您可能需要最新版本,否则可能无法获得安全修复程序。请注意,您应该进行一些测试,以查看最新版本是否与您的代码一起运行,如果没有,请更改您的代码。通常,Bouncy Castle库是向后兼容的,但是某些组件(例如其自己的ASN.1 API)已经进行了一些重大更改。

因此,最好使用this one from the Maven repository或下载最新的from the Bouncy Castle site itself。您应该使用带有15on的那个,这适用于等于或大于1.5(on = onwards)的所有Java版本。

存储这些罐子而不使用其版本号当然是荒谬的。如果您只需要重命名.jar文件以使代码运行,那么您需要解决一些问题。

答案 1 :(得分:1)

Java版本与Bouncy Castle有关。您拥有的是Java 1.5和Java 1.6的jars
您的类路径中应该只有1,并且使用最接近Java运行时环境版本的Bouncy Castle jar。如果有多个,则您不知道正在运行哪个版本的代码。不能保证类的加载顺序,并且跨环境,java版本等通常会有所不同。 当您有两个版本的同一个jar时,您更有可能出现难以重现的错误。

答案 2 :(得分:0)

重要的是版本中的最后3位数字,例如149中的bcprov-jdk15on-149.jar。这是充气城堡的实际版本。选择较新的那个。

您应该分析您的类路径依赖关系(例如mvn dependency:tree),以了解您实际使用的版本。原则上,较新的版本应向后兼容,但不能保证and there could be bugs