我正在开发一款游戏,我正在使用Slick2D库.我也使用bouncycastle进行加密.然后我使用jarsplice将所有内容打包在一个漂亮的可执行文件中.它运行正常,直到它需要加密某些东西.它给了我一个java.lang.SecurityException: JCE cannot authenticate the provider BC
And我正在使用一个签名的jar文件(http://www.bouncycastle.org/download/bcprov-jdk15on-150.jar)
这是堆栈跟踪
java.lang.SecurityException: JCE cannot authenticate the provider BC at javax.crypto.Cipher.getInstance(Cipher.java:642) at javax.crypto.Cipher.getInstance(Cipher.java:580) at net.matrixstudios.zenerith.networking.ZenerithLogin.encryptLogin(ZenerithLogin.java:159) at net.matrixstudios.zenerith.networking.ZenerithLogin.(ZenerithLogin.java:112) at net.matrixstudios.zenerith.MultiplayerMenu$1.performAction(MultiplayerMenu.java:90) at net.matrixstudios.zenerith.gui.menu.MenuGameState.clickButton(MenuGameState.java:83) at net.matrixstudios.zenerith.gui.menu.MenuGameState.checkForButtonClicks(MenuGameState.java:75) at net.matrixstudios.zenerith.gui.menu.MenuGameState.update(MenuGameState.java:51) at net.matrixstudios.zenerith.gui.menu.AbstractGameState.update(AbstractGameState.java:47) at org.newdawn.slick.state.StateBasedGame.update(StateBasedGame.java:266) at org.newdawn.slick.GameContainer.updateAndRender(GameContainer.java:663) at org.newdawn.slick.AppGameContainer.gameLoop(AppGameContainer.java:411) at org.newdawn.slick.AppGameContainer.start(AppGameContainer.java:321) at net.matrixstudios.zenerith.gui.Window. (Window.java:28) at net.matrixstudios.Main.main(Main.java:28) Caused by: java.util.jar.JarException: file:/C:/Users/M4trixSh4d0w/Desktop/Zenerith_Alpha.0.2.1.5.jar has unsigned entries - org/bouncycastle/LICENSE.class at javax.crypto.JarVerifier.verifySingleJar(JarVerifier.java:462) at javax.crypto.JarVerifier.verifyJars(JarVerifier.java:322) at javax.crypto.JarVerifier.verify(JarVerifier.java:250) at javax.crypto.JceSecurity.verifyProviderJar(JceSecurity.java:161) at javax.crypto.JceSecurity.getVerificationResult(JceSecurity.java:187) at javax.crypto.Cipher.getInstance(Cipher.java:638) ... 14 more
那么如何验证要运行的jar文件呢?这是一个独立的可执行jar文件.