Java ';CKR加密数据无效';在sun平台(JDK 1.8.011之后)中对CipherOutputStream调用close()方法时

Java ';CKR加密数据无效';在sun平台(JDK 1.8.011之后)中对CipherOutputStream调用close()方法时,java,Java,我的代码在sun平台上失败,jdk 1.8.011之后的每一个最新版本的java在其他平台上都可以正常工作。jdk 1.8.011之前的java在所有平台上都可以正常工作: 原因:java.security.ProviderException:doFinal()失败 位于sun.security.pkcs11.P11Cipher.impldofail(P11Cipher.java:776) 位于sun.security.pkcs11.P11Cipher.engineDoFinal(P11Ciph

我的代码在sun平台上失败,jdk 1.8.011之后的每一个最新版本的java在其他平台上都可以正常工作。jdk 1.8.011之前的java在所有平台上都可以正常工作:

原因:java.security.ProviderException:doFinal()失败 位于sun.security.pkcs11.P11Cipher.impldofail(P11Cipher.java:776) 位于sun.security.pkcs11.P11Cipher.engineDoFinal(P11Ciphe.java:543) 位于sun.security.pkcs11.P11Cipher.engineDoFinal(P11Ciphe.java:526) 位于javax.crypto.Cipher.doFinal(Cipher.java:2048) 在javax.crypto.CipherOutputStream.close(CipherOutputStream.java:210)

引起 by:sun.security.pkcs11.wrapper.PKCS11Exception:CKR\u加密的\u数据\u无效 位于sun.security.pkcs11.wrapper.pkcs11.C_DecryptFinal(本机方法) sun.security.pkcs11.P11Cipher.implDoFinal(P11Cipher.java:769)

在CipherOutputStream上调用close()方法时失败。 CipherOutputStream.close()


请提供任何修复,以便在所有平台上使用最新版本的java。

您的代码在做什么,您能分享一个示例吗?关于JDK版本,是不是1.8.0_11,没有像1.8.011这样的版本。我的代码使用算法:DES,Padding:PKCS5Padding,Mode:CBC对加密文件进行解密。这是一个特定于平台的问题。它在windows和所有版本的java中都能正常工作,但只有在sun平台上,JDK 1.8.0_11之后的所有最新版本的java都会失败。