java.security.InvalidKeyException:尽管在 Android Studio 上安装了 JCE Unlimited Strength Jurisdiction Policy,但密钥大小不合法
java.security.InvalidKeyException: Illegal key size although JCE Unlimited Strength Jurisdiction Policy is installed on Android Studio
我正在使用密钥大小为 256 位的 AES 算法,并在两个位置(即 [=17 下)为 JAVA 8 安装了 JCE 文件=]Java\jdk1.8.0_05\jre\lib\security & Java\jre8\lib\security
我正在使用充气城堡作为服务提供商,并将 jar 作为 lib 添加到我的 android project.When 我设置密钥大小为 128 位,一切正常但是当我选择 192 或 256 时 java.security.InvalidKeyException:非法密钥大小 occurs.One 更重要的是,我还在 运行 时间安装了 bouncycastle 提供程序。
异常发生在这一行
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 仅用于直接在您的计算机上执行的组件,例如本地测试或类似的东西。
我正在使用密钥大小为 256 位的 AES 算法,并在两个位置(即 [=17 下)为 JAVA 8 安装了 JCE 文件=]Java\jdk1.8.0_05\jre\lib\security & Java\jre8\lib\security 我正在使用充气城堡作为服务提供商,并将 jar 作为 lib 添加到我的 android project.When 我设置密钥大小为 128 位,一切正常但是当我选择 192 或 256 时 java.security.InvalidKeyException:非法密钥大小 occurs.One 更重要的是,我还在 运行 时间安装了 bouncycastle 提供程序。 异常发生在这一行
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 仅用于直接在您的计算机上执行的组件,例如本地测试或类似的东西。