当前位置: 首页 > 知识库问答 >
问题:

如何解决密钥存储加载:无效的密钥存储格式?

佘飞鸣
2023-03-14

三个月前我得到了我应用程序的发布密钥。现在我格式化了我的计算机,当我用我的releasekey签名我的应用程序时,我得到了错误:java.lang.runtimeException:keystore Load:无效的keystore格式。

我应该如何解决这个错误?

该命令是:jarsigner-verbose-keystore“d:\releasekey.keystore”“d:\myapp.apk”releasekey

我试着得到这个:

java.io.IOException: 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.KeyStrore.load(KeyStore.java:1214) 
at sun.security.tools.KeyTool.doCommands(KeyTool.java:789) 
at sun.security.tools.KeyTool.run(KeyTool.java:340) 
at sun.security.tools.KeyTool.main(KeyTool.java:333) 

共有1个答案

伏子辰
2023-03-14

keystore保存用于对应用程序签名的私有加密密钥--重新运行该命令将生成一个完全不同的密钥(密码只是保护保存它的文件--它与加密密钥本身没有直接关系)--如果丢失了keystore文件,您无法恢复/重建它。

如果你丢失了它,那么你的用户将不得不完全卸载现有的应用程序,然后才能安装你的新版本--当他们卸载应用程序时,他们将丢失保存在应用程序中的任何数据(这是没有办法的,这是Android的一个安全功能)

更糟糕的是,android play store不会让你上传新版本,因为它们没有使用与旧版本相同的密钥编码--你需要以不同的包名发布新版本--这意味着你的现有用户甚至不能自动升级(他们必须找到新版本)--你甚至无法告诉他们需要升级(你不能上传旧应用程序的新版本...)

您必须在备份中找到keystore文件,或者尝试从磁盘中恢复数据--希望您使用了“快速”格式--在这种情况下,如果操作系统还没有重写数据,一个好的数据恢复服务可能会将其恢复回来。

古德勒克!

 类似资料:
  • 我正在使用ionic开发一个android应用程序。我用一个新的密钥库错误地给我的应用程序签名。当我将应用程序上传到PlayStore时发现证书不相等时,我使用了与PlayStore中所需证书相同的备份keystore文件。 现在,如果我想用命令对我的。apk进行jarsign 我得到以下错误 我谷歌了很多,但我不确定是否有任何解决方案可以帮助我。我必须使用我的旧证书,不能使用一个新的,因为我不能

  • 11:12:17,289信息[org.apache.Coyote.http11.http11protocol](MSC服务线程1-2)JBWeb003001:Coyote http/1.1正在初始化:http-/0.0.0.0:8080 11:12:17,297信息[org.apache.Coyote.http11.http11protocol](MSC服务线程1-2)JBWeb003000:Co

  • 我试图在android studio中发布一个简单的项目。所以我转到菜单>Build>Build apk。但是我得到了这个错误: 我是Android Studio的新手

  • 我在工作中被要求保护保存在Mysql数据库中的敏感数据。这个数据库包含几个表,其中一个表中的关键数据只能使用Django中的API来访问。对于这个API,只有一定数量的人可以访问它,因此他们将是唯一能够访问这个表中的数据的人。 因此,目前的问题是每个人都可以访问数据库和该表,因此我们决定使用AES在AES_ENCRYPT()和AES_DECRYPT()函数的帮助下加密该表中的所有数据(根据http

  • 我已经创建了Azure VM,并在其中安装了我的Java应用程序,然后连接到WASB存储。 我添加了以下jars和core-site.xml来从Java应用程序访问WASB存储。 Azure-存储 Hadoop-Azure core-site.xml 如何使用加密密钥访问WASB存储。上面的配置有样例吗? 注意:-我将Azure VM直接连接到WASB存储,而不使用HDInsight集群。

  • 问题内容: 我需要将2个密钥存储到KeyStore中,这是相关代码: 尽管我得到了执行,但“私钥必须带有证书链” 那到底是什么?以及我将如何生成它? 问题答案: 您还需要提供私钥条目的证书(公钥)。对于由CA签名的证书,链是CA的证书和最终证书。对于自签名证书,您只有自签名证书。 示例: 要生成证书,请点击以下链接: 示例: