首先 这不是Hutools的一个bug
而是pdfbox-app这个组件的bug
在2.0.0版本的pdfbox-app jar包中 集成了一个叫 bouncycastle的加密工具包(貌似是个jdk级别的jar)的源代码,pdfbox直接将其源码都写在自己jar里
所以我们这项目里其他的关于bouncycastle加密包的引用都取消了,这也就是问题导致的原因,pdfbox-app.jar包由于自身问题,以及bouncycastle本身的特性,就是会检测自身所在jar的签名是否有效,所以pdfbox-app.jar 的 2.0.0 版本的签名不知道为什么,无法通过检测,所以导致,加密不能使用抛出那个什么 jce 什么 cannot 啥的异常
简单点说就是,bouncycastle这个组件会对自身jar包进行签名检测,不符合就会抛异常,而pdfbox-app 2.0.0 集成了这个组件的所有源代码,而且在签名上没处理好,导致我们无法使用这个组件来加密,hutools加密代码底层有用到bouncycastle所以就无法运行加密了。
解决方式很简单 将pdfbox-app的版本由 2.0.0 改为2.0.13或者其他版本,问题解决。
顺便提一句,Hutools这个工具包真的很好用,为贡献者们点个赞,感谢你们的贡献。