java.security.InvalidKeyException:尽管Android Studio上安装了JCE Unlimited Strength辖区策略,但密钥大小非法
我正在使用密钥大小为256位的AES algo,并已在两个位置(即JAVA\jdk1.8.0_05\jre\lib\security和JAVA\jre8\lib\security下)安装了JAVA 8的JCE文件 我使用bouncy castle作为服务提供商,并在我的android项目中添加了jar作为lib。当我设置keysize 128位时,一切正常,但当我选择192或256时,java.security.InvalidKeyException:出现非法密钥大小的情况。另外一件事是,我还在运行时安装了bouncycastle提供商。 异常发生在这一行java.security.InvalidKeyException:尽管Android Studio上安装了JCE Unlimited Strength辖区策略,但密钥大小非法,java,android,cryptography,bouncycastle,android-studio-2.3,Java,Android,Cryptography,Bouncycastle,Android Studio 2.3,我正在使用密钥大小为256位的AES algo,并已在两个位置(即JAVA\jdk1.8.0_05\jre\lib\security和JAVA\jre8\lib\security下)安装了JAVA 8的JCE文件 我使用bouncy castle作为服务提供商,并在我的android项目中添加了jar作为lib。当我设置keysize 128位时,一切正常,但当我选择192或256时,java.security.InvalidKeyException:出现非法密钥大小的情况。另外一件事是,我还在
cipher.init(Cipher.ENCRYPT_MODE, secret,new IvParameterSpec(ivBytes));
同样的代码在具有256个键的netbeans中运行良好。
怎么了?Android Studio在其安装目录的
JRE
目录中包含了自己的JRE安装
然而,当你使用Android Studio时,你正在开发一个Android应用程序。Android应用程序的执行不会在您的计算机上使用任何JRE/JDK。它在您用于测试应用程序的设备上使用Dalvik
因此,此Android Studio内部JRE仅用于直接在您的计算机上执行的组件,例如本地测试或类似测试。使用Android Studio时,您正在开发Android应用程序。Android应用程序的执行不会在您的计算机上使用任何JRE/JDK。它在您用于测试应用程序的设备上使用Dalvik。顺便说一句:Android Studio在它的安装目录中包含了它自己的JRE安装。所以你是说我应该将JCE文件复制到Android Studio JRE文件夹?这就是答案。我必须将其复制到Android Studio目录下的JRE文件夹。非常感谢@RobertI将我的评论的扩展版本设置为answer,所以你可以接受它。