Android Keystore funktioniert nicht mehr

Erst kürzlich hatte ich ein Problem mit einem Schlüsselspeicher. Ich weiß, dass es bereits viele Fragen zu diesem Problem gibt. Ich habe sie alle gelesen und wütend gegoogelt.

Error:
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
Software, die ich benutze: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)
Finsternis
Version: 3.8.0
Build id: I20120502-2000
Neuestes ADT PluginNeuestes Android SDKFolgendes weiß ich:Ich habe das Passwort nicht verloren und es hat sich nie geändert.Ich kann das Passwort nicht abrufen (ich kenne den Pass).Ich kann eine vorhandene Anwendung nicht mit einem anderen Schlüssel signieren, ohne eine brandneue Anwendung freizugeben (daher kann ich keine Updates veröffentlichen).Folgendes habe ich getan:Ich habe Eclipse viele Male deinstalliert und neu installiert.Ich habe das Android ADT Plugin deinstalliert und neu installiert.Ich habe das letzte Android SDK viele Male entfernt und erneut heruntergeladen.Ich habe JDK7 deinstalliert und neu installiert.Ich habe versucht, die Sicherungen meines Schlüsselspeichers zu verwenden.Ich habe die MD5-Prüfsummen mit "md5sum KEYSTORE" überprüft und mit den Backups verglichen (gleiche MD5-Ausgabe - nicht manipuliert).Ich habe versucht, den Schlüsselspeicher brachial zu erzwingen (ich habe das mir bekannte Kennwort abgerufen).Ich habe einen Testschlüssel erstellt (mit dem aktuellen Setup) und das Passwort getestet, und es scheint gut zu funktionieren (also hat sich etwas geändert).Ich habe versucht, die Android-APK-Datei manuell zu exportieren und dann zu signieren (außerhalb von Eclipse).So exportiere ich eine signierte Anwendung:Durch Eclipse: Exportieren über Datei> Exportieren> Android-Anwendung exportieren.Vor JDK7: jarsigner -verbose -keystore KEYSTORE-DATEIAlias.Mit JDK7: jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore KEYSTORE FILE ALIAS.Was gibt es noch herauszufinden oder zu versuchen?Einige der Verweise / URLs besagen, dass die Datei "trusted.certs" entfernt werden soll.Versuchen Sie den "debug.keystore" zu löschen?Würde sich das Aktualisieren von Eclipse oder eines der Android-Entwicklungstools auf meinen Keystore auswirken?Würde das Aktualisieren von Java von jdk6 auf jdk7 Probleme verursachen?Könnte dies etwas an der Funktionsweise des Jarsigners ändern?Benutzervorschläge:Versuchen Sie es mit JDK6, aber ich konnte kürzlich eine Anwendung exportieren.In meinen lokalen Eigenschaften wurde key.store.password oder key.alias.password aktiviertDeaktivieren Sie das Kontrollkästchen für den Build in Eclipse und bereinigen Sie Ihr ProjektVersuchen Sie, den Ordner .metadata in Ihrem Arbeitsbereich zu entfernen und alle temporären Ordner zu löschen.ZusammenfassungKeystores hat sich nicht geändert,Ich habe die Passwörter zu den Keystores,Ich habe kürzlich eine Anwendung erfolgreich exportiert mit:Eclipse 3.8 (und Eclipse 4.0+),Neueste Java 7,Neuestes ADT Plugin.Mein letzter erfolgreicher Export und Build war vor einigen Wochen mit Eclipse 3.8, den neuesten Android-Tools und Java 7 mit demselben Kennwort.Update (29.06.14)Ich habe benutzt:keytool -list -keystore KEYSTORE erfolgreich zu beweisen und zu zeigen, dass 3 von meinen 4 Schlüsseln funktionieren.Ich habe den letzten Schlüssel erzwungen und das Passwort aus dem Keystore erhalten (das Passwort, das ich bereits kannte), aber das Passwort funktioniert nicht, wenn ich es zum Signieren eingebe. Ich habe benutzt:java -jar AndroidKeystoreBrute_v1.02.jar-m 3 -k KEYSTORE -d WORTLISTE.Seltsamerweise wird manchmal, wenn ich mein Passwort sehr schnell in Eclipse eingebe, mein Alias ​​angezeigt und ich kann meine Anwendung erfolgreich exportieren. (Ich weiß, das ist verrückt).Aktualisierte Java-Version.

Wenn ich das Passwort sehr schnell eingebe, funktioniert es manchmal.

Es scheint, dass ich den Schlüsselspeicher verwenden kann, wenn ich Eclipse öffne und das Passwort zum ersten Mal eingebe.

Wenn alles andere fehlschlägt, muss ich natürlich einen neuen Schlüsselspeicher erstellen. Ich würde das wirklich gerne lösen, ich bin mir nur nicht sicher, was ich jetzt tun soll, außer mit einem neuen Schlüssel neu zu veröffentlichen.

Wenn der Schlüssel nicht richtig wiederhergestellt werden kann, öffne ich ihn möglicherweise auf Github.

Lösung (29.06.14):

Ein besonderer Dank geht an User Erhannis!

Folgendes habe ich getan:

Der Befehl hat mich jedes Mal verunsichert:

keytool -importkeystore -srckeystore old.keystore -destkeystore new.keystore -v

Da Sie mir gesagt haben, wir könnten private Schlüssel aus dem Java-Keystore (.jks) extrahieren, habe ich mich eingehender mit einer Variation des Befehls befasst. Ich bin den Links gefolgt, die du gepostet hastHier undHier:

keytool -importkeystore -srckeystore old.keystore -destkeystore new.keystore -deststoretype pkcs12

Nachdem ich den privaten Schlüssel extrahiert und als PKCS12 gespeichert habe, habe ich meinen privaten Schlüssel extrahiert und in einen brandneuen Java-Keystore zurückgespeichert:

keytool -importkeystore -srckeystore new.keystore -srcstoretype pkcs12 -destkeystore final.keystore -deststoretype jks
Verweise:

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

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

Liste der von mir gelesenen StackOverflow-URLs:

Wie gehe ich mit einem verlorenen KeyStore-Passwort in Android um?

Ungültiges Keystore-Problem?

Android: Ich habe meinen Android-Schlüsselspeicher verloren. Was soll ich tun?

Ich habe meine .keystore-Datei verloren.

Passwort für Keystore vergessen, da an Brute-Force-Erkennung gedacht. Wird es den Keystore beschädigen?

Ich habe das Passwort für die Android Keystore-Datei verloren

Problem beim Ausführen meines signierten Keystores in Eclipse

Android - Passwort für Keystore vergessen. Kann ich die Keystore-Datei entschlüsseln?

Android-Release-Keystore-Problem: "Keystore wurde manipuliert oder Passwort war falsch"

Antworten auf die Frage(8)

Ihre Antwort auf die Frage