gpt4 book ai didi

java - Android keystore 停止工作

转载 作者:IT老高 更新时间:2023-10-28 20:31:37 26 4
gpt4 key购买 nike

就在最近,我遇到了一个 key 存储问题。我知道关于这个问题已经有很多问题了。我已经阅读了所有内容并疯狂地谷歌搜索。

错误:

keytool error: java.io.IOException: Keystore was tampered with, or password was incorrect
java.io.IOException: Keystore was tampered with, or password was incorrect
at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:772)
at sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.java:55)
at java.security.KeyStore.load(KeyStore.java:1214)
at sun.security.tools.KeyTool.doCommands(KeyTool.java:885)
at sun.security.tools.KeyTool.run(KeyTool.java:340)
at sun.security.tools.KeyTool.main(KeyTool.java:333)
Caused by: java.security.UnrecoverableKeyException: Password verification failed
at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:770)
... 5 more

我正在使用的软件:

java
java version "1.7.0_21"
Java(TM) SE Runtime Environment (build 1.7.0_21-b11)
Java HotSpot(TM) 64-Bit Server VM (build 23.21-b01, mixed mode)

eclipse
Version: 3.8.0
Build id: I20120502-2000

最新的 ADT 插件

最新的安卓 SDK

这是我所知道的:
  • 我没有丢失密码,它从未改变过。
  • 我无法找回密码(我知道通行证)。
  • 在不发布全新应用程序的情况下,我无法使用不同的 key 对现有应用程序进行签名(因此我无法发布任何更新)。

  • 这是我所做的:
  • 我已经多次卸载并重新安装 Eclipse。
  • 我已经卸载并重新安装了 android ADT 插件。
  • 我已经多次删除并重新下载最新的 Android SDK。
  • 我已经卸载并重新安装了JDK7。
  • 我曾尝试使用我的 keystore 的备份。
  • 我已经使用“md5sum KEYSTORE”检查了 MD5 校验和,并与备份进行了比较(相同的 MD5 输出 - 未篡改)。
  • 我试过暴力破解 keystore (我已经找回了我知道的密码)。
  • 我创建了一个测试 key (使用当前设置)并测试了密码,它似乎工作正常(所以有些事情发生了变化)。
  • 我尝试手动导出 android .apk,然后尝试对其进行签名(Eclipse 之外)。

  • 以下是我导出已签名应用程序的方法:
  • 通过 Eclipse:使用文件 > 导出 > 导出 Android 应用程序导出。
  • JDK7 之前: jarsigner -verbose -keystore KEYSTORE 文件别名。
  • 使用 JDK7: jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore KEYSTORE 文件别名。

  • 还有什么需要弄清楚或尝试的?
  • 一些引用文献/URL 说要删除“trusted.certs”文件?
  • 尝试删除“debug.keystore”?
  • 更新 Eclipse 或任何 Android 开发工具会影响我的 keystore 吗?
  • 将 Java 从 jdk6 更新到 jdk7 会产生任何问题吗?
  • 无论如何,这是否会干扰或改变 jarsigner 的工作方式?

  • 用户建议:
  • 尝试使用 JDK6,但我最近能够导出应用程序。
  • 在我的 local.properties 中检查 key.store.password 或 key.alias.password
  • 在 Eclipse 中自动取消选中构建并清理您的项目
  • 尝试删除工作区中的 .metadata 文件夹并清除所有临时文件夹。

  • 概括
  • keystore 没有改变,
  • 我有 keystore 的密码,
  • 我最近使用以下方法成功导出了一个应用程序:
  • Eclipse 3.8(和 Eclipse 4.0+),
  • 最新的 Java 7,
  • 最新的 ADT 插件。
  • 我最后一次成功导出和构建是在几周前使用 Eclipse 3.8、最新的 Android 工具和 Java 7 使用相同的密码。

  • 更新 (6/29/14)
  • 我已经使用:keytool -list -keystore KEYSTORE 成功证明并显示我的 4 个键中的 3 个有效。
  • 我暴力破解了最后一个 key 并从 keystore 中获取了密码(我已经知道的通行证),但是当我输入签名时密码不起作用。我使用过:java -jar AndroidKeystoreBrute_v1.02.jar -m 3 -k KEYSTORE -d WORDLIST。
  • 奇怪的是,有时当我在 eclipse 中快速输入密码时,我的别名会出现,我可以成功导出我的应用程序。 (我知道这很疯狂)。
  • 更新了 Java 版本。

  • 如果我非常快速地输入密码,它有时会起作用。

    第一次打开 Eclipse 并输入密码似乎可以让我使用 keystore 。

    显然,如果所有其他方法都失败了,我将不得不创建一个新的 keystore 。我真的很想解决这个问题,除了使用新 key 重新发布之外,我现在不知道该怎么做。

    如果 key 无法正常恢复,我可能会在 Github 上将其开源。

    解决方案 (6/29/14):

    特别感谢用户 Erhannis!

    这是我所做的:

    该命令每次都会出错:
    keytool -importkeystore -srckeystore old.keystore -destkeystore new.keystore -v

    既然你告诉我我们可以从 Java Keystore(.jks) 中提取私钥,我深入挖掘并最终使用了该命令的变体。我关注了您发布的链接 herehere :
    keytool -importkeystore -srckeystore old.keystore -destkeystore new.keystore -deststoretype pkcs12

    提取私钥并存储为 PKCS12 后,我认为提取了我的私钥并将其放回全新的 Java Keystore:
    keytool -importkeystore -srckeystore new.keystore -srcstoretype pkcs12 -destkeystore final.keystore -deststoretype jks

    引用:

    http://developer.android.com/tools/publishing/app-signing.html#signapp

    http://code.google.com/p/android-keystore-password-recover/

    我读过的 StackOverflow URL 列表:

    How to handle a lost KeyStore password in Android?

    Invalid Keystore problem?

    Android: I lost my android key store, what should I do?

    I lost my .keystore file?

    Forgot Keystore password, thinking of Brute-Force detection. will it corrupt the keystore?

    I have lost the password for android Keystore file

    Problem running my signed, release keystore in Eclipse

    Android - Forgot keystore password. Can I decrypt keystore file?

    Android release keystore issue: "Keystore was tampered with, or password was incorrect"

    最佳答案

    我可能遇到了同样的问题。我从来没有弄清楚它为什么会失败(尽管我想知道是不是因为 keystore 密码短于 6 位),但是我能够将我的 key 复制到一个新的 keystore 中,然后我将其重命名以替换旧的 keystore ,之后它神秘地工作(使用新密码)。顺便说一下,需要 key 密码。下类 https://security.stackexchange.com/a/3795 ,我做了以下事情:

  • keytool -importkeystore -srckeystore old.keystore -destkeystore new.keystore -v
  • 两次输入新的 keystore 密码
  • 当它询问我源 keystore 密码时按 Enter 键(留空)
  • 输入 key 密码

  • 在仔细检查新的是否有效后,我只是将其复制到旧的。希望这对你有用;祝你好运。

    关于java - Android keystore 停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13535424/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com