33 java encryption applet keystore
有谁知道如何解决这个问题?我尝试了很多东西,但没有一个能奏效.
当我点击更多细节时,我得到了这个:
at sun.security.provider.JavaKeyStore.engineLoad(Unknown Source)
atsun.security.provider.JavaKeyStore$JKS.engineLoad(Unknown Source)
at java.security.KeyStore.load(Unknown Source)
at com.sun.deploy.security.RootCertStore$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.deploy.security.RootCertStore.loadCertStore(Unknown Source)
at com.sun.deploy.security.RootCertStore.load(Unknown Source)
at com.sun.deploy.security.RootCertStore.load(Unknown Source)
at com.sun.deploy.security.ImmutableCertStore.load(Unknown Source)
at com.sun.deploy.security.TrustDecider.isAllPermissionGranted(Unknown Source)
at com.sun.deploy.security.TrustDecider.isAllPermissionGranted(Unknown Source)
at sun.plugin.security.PluginClassLoader.getPermissions(Unknown Source)
at java.security.SecureClassLoader.getProtectionDomain(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at sun.applet.AppletClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.applet.AppletClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.applet.AppletClassLoader.loadCode(Unknown Source)
at sun.applet.AppletPanel.createApplet(Unknown Source)
at sun.plugin.AppletViewer.createApplet(Unknown Source)
at sun.applet.AppletPanel.runLoader(Unknown Source)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Run Code Online (Sandbox Code Playgroud)
小智 80
您可能会在复制/传输过程中损坏文件.
你在用maven吗?如果要使用"filter = true"复制密钥库文件,则可能会损坏该文件.
请检查文件大小.
xie*_*fan 29
也许maven编码你的KeyStore,你可以设置filtering = false来解决问题.
<build>
...
<resources>
<resource>
...
<!-- set filtering=false to fix -->
<filtering>false</filtering>
...
</resource>
</resources>
</build>
Run Code Online (Sandbox Code Playgroud)
Adi*_*ane 16
我花了很多时间在这上面,最后这对我有用 -
转到文件 -> 项目结构 -> SDK 位置 -> Gradle 设置 -> 更改 Gradle JDK -> 从 1.8 更改为 11
只需将 Gradle JDK -> 从 1.8 更改为 11,然后重建项目并重试
Gar*_*ver 12
(重新)安装最新的JDK(例如Oracle)为我修复了它.
在安装最新的JDK之前,当我在Terminal.app中执行以下命令时:
keytool -list -keystore $(/usr/libexec/java_home)/jre/lib/security/cacerts -v
Run Code Online (Sandbox Code Playgroud)
结果是:
keytool error: java.io.IOException: Invalid keystore format
java.io.IOException: Invalid keystore format
at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:650)
at sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.java:55)
at java.security.KeyStore.load(KeyStore.java:1445)
at sun.security.tools.keytool.Main.doCommands(Main.java:792)
at sun.security.tools.keytool.Main.run(Main.java:340)
at sun.security.tools.keytool.Main.main(Main.java:333)
Run Code Online (Sandbox Code Playgroud)
但是,在安装最新的Oracle JDK并重新启动终端后,执行以下命令:
keytool -list -keystore $(/usr/libexec/java_home)/jre/lib/security/cacerts -v
Run Code Online (Sandbox Code Playgroud)
结果是:
Enter keystore password:
Run Code Online (Sandbox Code Playgroud)
这表示路径上的keytool可以访问密钥库.
Far*_*iba 10
对我来说,发生这个问题是因为我在笔记本电脑上使用 1.8.0_251 生成了 .jks 文件,并将其复制到具有 java 1.8.0_45 的服务器上,当我在代码中使用该 .jks 文件时,我得到了 java.io.IOException: Invalid密钥库格式。
为了解决这个问题,我直接在服务器上生成了 .jks 文件,而不是从具有不同 java 版本的笔记本电脑复制到那里。
我认为您要使用的密钥库文件的格式与您的 Java 版本不同或不受支持。您可以发布更多有关您的任务的信息吗?
一般来说,要解决此问题,您可能需要重新创建整个密钥库(例如使用其他 JDK 版本)。在导出-导入旧密钥和新密钥之间的密钥 - 如果您设法在其他地方打开旧密钥。
如果它只是一个不受支持的版本,请尝试使用BouncyCastle加密提供程序(尽管我不确定它是否增加了对 Java 对更多密钥库类型的支持?)。
编辑:我查看了 BC 的功能规范。
小智 5
您可以通过在 android/app/ 目录中运行以下命令来生成调试密钥库:
keytool -genkey -v -keystore debug.keystore -storepass android -alias androiddebugkey -keypass android -keyalg RSA -keysize 2048 -validity 10000
Run Code Online (Sandbox Code Playgroud)
或者直接从官方模板下载https://raw.githubusercontent.com/facebook/react-native/master/template/android/app/debug.keystore
我有同样的问题
C:\Program Files\Java\jdk1.8.0_51\bin\keytool
但相同的密钥库文件可以正常使用
“C:\Program Files\Java\jre1.8.0_201\bin\keytool”
我知道这是一个旧线程,但已经失去了很多时间来解决这个问题......:D
| 归档时间: |
|
| 查看次数: |
92110 次 |
| 最近记录: |