Android Keystore funktioniert nicht mehr
Gerade kürzlich habe ich ein problem mit einem key store. Ich weiß es gibt viele Fragen über dieses problem bereits. Ich habe Sie alle gelesen und Gegoogelt wie Wild.
Fehler:
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)
Eclipse
Version: 3.8.0
Build id: I20120502-2000
Neuesten ADT-Plugin
Neuesten Android-SDK
Hier ist was ich weiß:
- Ich nicht verlieren, das Kennwort und es hat sich nie geändert.
- Kann ich nicht abrufen, das Passwort(ich weiß, das pass).
- Ich kann nicht anmelden, eine bestehende Anwendung mit einer anderen Taste ohne loslassen eine BRANDNEUE Anwendung, die(So kann ich nicht veröffentlichen, alle updates).
Hier ist, was ich getan habe:
- Ich habe deinstalliert und neu installiert Eclipse viele Male.
- Ich habe deinstalliert und neu installiert, das android-ADT-plugin.
- Habe ich entfernt und neu heruntergeladen neuesten Android-SDK-viele Male.
- Ich habe deinstalliert und neu installiert JDK7.
- Ich habe versucht, mit der sicherungen von meinem keystore.
- Ich habe die MD5-Prüfsummen mit "md5sum-KEYSTORE" und im Vergleich mit den sicherungen(gleiche MD5-Ausgang - nicht verändert).
- Ich habe versucht, brute-forcing die Taste store(ich abgerufen haben, das Kennwort, das ich kannte).
- Ich erstellte eine test-Taste(mit dem aktuellen setup) getestet und das Passwort ein und es scheint geklappt hat(so etwas hat sich geändert).
- Ich habe versucht den Export der android .apk manuell und versuchte dann, es zu unterzeichnen(Außerhalb von Eclipse).
Hier ist, wie Exportiere ich eine signierte Anwendung:
- Durch Eclipse: Exportieren mit Datei > Export > Exportieren-Android-Anwendung.
- Vor JDK7: jarsigner -verbose -keystore KEYSTORE-DATEI ALIAS.
- Mit JDK7: jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore KEYSTORE-DATEI ALIAS.
Was soll man da noch herausfinden oder versuchen?
Einige der Hinweise/URLs sagen, um die zu entfernen "vertrauenswürdigen.certs" Datei?löschen Sie die "debug".keystore"?Würde die Aktualisierung von Eclipse oder eine der Android-Entwicklungs-tools auf meinem keystore?Würde die Aktualisierung von Java jdk6 zu jdk7 zu irgendwelchen Problemen?Könnte das Durcheinander gebracht wurden oder sich ändern, wie die jarsigner funktioniert es überhaupt?
Benutzer Vorschläge:
- Versuchen Sie es mit JDK6, aber ich war in der Lage, vor kurzem zu einer Anwendung exportieren.
Geprüft-Taste.store.Passwort oder Schlüssel.alias.Passwort in mein lokal.EigenschaftenDeaktivieren Sie die automatisch erstellen in eclipse und reinigen Sie Ihr ProjektVersuchen, Sie zu entfernen .Metadaten-Ordner in Ihrem Arbeitsbereich und lösche alle temp-Ordner.
Zusammenfassung
- Keystores nicht ändern,
- Ich habe die Passwörter für den Schlüsselspeicher,
- Ich habe erfolgreich exportiert eine Anwendung vor kurzem mit:
- Eclipse 3.8 (und Eclipse 4.0+),
- Neueste Java 7,
- Neuesten ADT-Plugin.
- Meine letzten erfolgreichen exportieren und zu bauen, war vor ein paar Wochen mit Eclipse 3.8, neuesten Android-Werkzeuge und Java 7 mit dem gleichen Passwort.
Update (6/29/14)
- Die ich verwendet habe: keytool -list -keystore KEYSTOREum erfolgreich zu beweisen und zu zeigen, dass 3 von meinen 4-Tasten arbeiten.
- Ich bruteforced den letzten Schlüssel und erhalten Sie das Kennwort aus dem Schlüsselspeicher(Die pass ich schon wusste), aber das Passwort funktioniert nicht, wenn ich für die Unterzeichnung. Ich habe verwendet: java-jar AndroidKeystoreBrute_v1.02.jar -m 3 -k KEYSTORE -d WORDLIST.
- Seltsam genug, manchmal, wenn ich mein Passwort in eclipse sehr schnell, mein Pseudonym wird sich zeigen und kann ich erfolgreich exportieren meine Anwendung. (Ich weiß, das ist verrückt).
- Aktualisierte Java-version.
Wenn ich das Passwort einzugeben, kann man sehr schnell arbeiten, manchmal.
Scheint es, dass die öffnung der Eclipse-und der Eingabe des Passwortes das erste mal lässt mich mit dem keystore.
Natürlich, wenn alle Stricke reißen, werde ich haben, erstellen Sie einen neuen Schlüssel zu speichern. Ich würde wirklich gerne dieses gelöst, ich bin mir nur nicht sicher, was jetzt zu tun außer zu veröffentlichen mit einem neuen Schlüssel.
Wenn der Schlüssel nicht wiederhergestellt werden kann, richtig, ich mag open source auf Github.
Lösung (6/29/14):
Einen besonderen Dank an user Erhannis!
Hier ist was ich getan habe:
Würde der Befehl zu einem Fehler auf mich jedes mal:
keytool -importkeystore -srckeystore old.keystore -destkeystore new.keystore -v
Da Sie sagte mir, wir extrahieren konnte private keys aus dem Java Keystore(.jks), grub ich tiefer und landete mit einer Variante des Befehls. Ich folgte den links die du gepostet hier und hier:
keytool -importkeystore -srckeystore old.keystore -destkeystore new.keystore -deststoretype pkcs12
Nach dem extrahieren des privaten Schlüssels und Speicherung als PKCS12, ich denke, extrahiert meinen privaten Schlüssel und steckte ihn zurück in einem brandneuen Java-Keystore:
keytool -importkeystore -srckeystore new.keystore -srcstoretype pkcs12 -destkeystore final.keystore -deststoretype jks
Referenzen:
http://developer.android.com/tools/publishing/app-signing.html#signapp
http://code.google.com/p/android-keystore-password-recover/
Liste der StackOverflow-URLs habe ich gelesen:
Wie man mit einem verlorenen KeyStore-Passwort in Android?
Android: ich habe mein android key store, was soll ich tun?
Ich verlor mein .keystore-Datei?
Vergessen Keystore-Kennwort, das denken von Brute-Force-Erkennung. wird es beschädigt die keystore?
Ich habe das Passwort verloren für android Keystore-Datei
Problem mit meiner unterzeichnet, release keystore in Eclipse
Android - keystore-Kennwort Vergessen. Kann ich entschlüsseln keystore-Datei?
Android-Version keystore Problem: "Keystore manipuliert wurde, oder das Passwort war falsch"
InformationsquelleAutor der Frage |
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vielleicht habe ich das gleiche problem hatte. Ich habe nie herausfinden, warum war es nicht (obwohl ich Frage mich, ob es war, weil Sie das keystore-Passwort war kürzer als 6 Ziffern), aber ich war in der Lage zu kopieren meine Schlüssel in einem neuen keystore, die ich dann umbenannt, um die alten zu ersetzen, und es auf mysteriöse Weise gearbeitet, danach (mit dem neuen Passwort). Brauchte den Schlüssel vergessen, durch die Art und Weise. Arbeiten aus https://security.stackexchange.com/a/3795ich habe die folgenden:
keytool -importkeystore -srckeystore old.keystore -destkeystore new.keystore -v
Nach der überprüfung, dass der neue gearbeitet, ich habe gerade kopiert es über den alten. Hoffe es klappt für dich, viel Glück.
InformationsquelleAutor der Antwort
Versuchen, Sie zu entfernen .Metadaten Ordner in Ihrem Arbeitsbereich und lösche alle temp-Ordner. Wenn Ihre keystore-Datei nicht beschädigt ist und Sie haben versucht, neu zu installieren, Eclipse, ADT, Android SDK und Java SDK richtig, ich sehe nicht, andere möglicherweise Ursachen für dieses seltsame Problem ausschließen .Metadaten-cache-Dateien und\oder einige temp Korruption.
Ein weiterer Vorschlag
Versuchen, Portecle ein Dienstprogramm für die Verwaltung und Prüfung von keystores, Schlüsseln, Zertifikaten, zertifikatsanfragen, certificate revocation lists, etc.
InformationsquelleAutor der Antwort Silverstorm
Werde ich vorschlagen paar mehr Wärme und Studien.
Geduld haben, gelten diese,
Schritte:
Hofft, dass dies helfen wird, Sie.
InformationsquelleAutor der Antwort Ajay Kumar Meher
Ich hatte das gleiche problem und ich habe versucht, alles, was vorgeschlagen in diesem thread aber nichts mehr retten konnte mein Pseudonym Kennwort. Der Punkt ist, dass ich absolut sicher über das Passwort, da hatte ich aktualisiert die app bereits vier mal. Ich war immer der "Keystore manipuliert wurde, oder das Passwort war falsch" Nachricht.
Die Lösung
Scheint es, dass bei der Erstellung der keystore mit eclipse, ein Leerzeichen Hinzugefügt wurde vor dem Passwort!
Diese fiesen bug wurde anscheinend behoben in einer späteren version Rendern mich nicht anmelden, meine app mit dem Passwort dachte ich, war der richtige.
Basierend auf diesem SO link: Ant nicht zu bauen, signierte apk nach der Aktualisierung auf die android-v20 ich würde vorschlagen, dass Sie versuchen Sie, ein Leerzeichen vor oder nach dem Passwort.
InformationsquelleAutor der Antwort
Speichern Sie Werte wie Schlüssel.store.Passwort oder Schlüssel.alias.Passwort in Ihren lokalen.Eigenschaften-Datei? Entweder sind diese falsch?
Ich bin gespannt, ob es gibt einige bug, der Auftritt, für Schlüssel erstellt mit JDK6 und überprüft JDK7 - Es würde erklären, warum die neuen Schlüssel, die Sie erstellt für die Prüfung arbeiten, aber die alten nicht. Versuchen Downgrade auf JDK6 und sehen, ob das behebt es - Andere hatten jarsigner Probleme in JDK7, die gingen Weg, wenn Sie herabgestuft zu 6. Wenn das funktioniert, einen bug-Bericht und Nachfrage ein patch so können Sie problemlos ein upgrade auf Java 7 🙂
InformationsquelleAutor der Antwort Alexander Lucas
Ich kämpfte dieses Problem auch vor kurzem und habe versucht, alle Vorschläge, die hier und anderswo. Schließlich identifiziert ein dummer Fehler, der verursacht wurde dieser Fehler auf mein Ende - ich wollte dies hier, falls es hilft keinem von Euch.
Dies ist eher der Fall zu sein, wenn Sie, wie ich, haben mehrere Java-Versionen auf Ihrem Rechner und musste aktualisiert JRE /JDK zwischen der Zeit, die Sie ursprünglich erzeugt den keystore und jetzt, wenn Sie versuchen zu signieren der APK.
Für einige Grund, unsere kompilieren Anweisungen waren, verweisen auf die volle Java-Pfad wie diesem:
C:\Progra~1\Java\jdk1.6.0_45\bin\jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore cre80ve.keystore-unsigned.apk cre80ve
Einer der Vorschläge oben hat mir denken, dass es vielleicht nicht unbedingt ein Passwort-Problem, und es könnte sein, versions-Inkompatibilitäten, die das Problem verursacht. So lief ich in den nachstehenden Befehl :
keytool -list -keystore cre80ve.keystore
Verwenden Sie das Kennwort, das wusste ich, war richtig, und siehe da, es bestätigt, dass es war das richtige Passwort.
Ich fiel dann der explizite Verweis in den Pfad zu der (älteren) Java-version. Das machte es automatisch abholen die neueste version von Java (jdk1.8.0_31 in meinem Fall):
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore cre80ve.keystore-unsigned.apk cre80ve
Und angefangen hat alles funktioniert Prima!
Bottomline: es kann nicht sein, ein Passwort-Problem, sondern unterschiedliche Versionen von Java oder dem Android SDK, die das Problem verursachen, so denken Sie daran, dass der check out.
Und sobald es beginnt zu arbeiten, denken Sie daran, ein backup Ihrer keystore und Passwort an einem sicheren Ort 🙂
InformationsquelleAutor der Antwort
Mein key alias gestopt arbeiten sudenly. (Ok, nach ein paar updates von Android Studio und Java).
Ich habe versucht, alle Lösungen aus diesem thread als auch von anderen. In meinem Fall die Lösung war überraschend.
Ich habe die keystore mit paar Aliase. Es wurde keine arbeiten, außer eine, die hatte das Passwort dasselbe wie für keystore. Aber leider war es nicht die, die ich brauchte. Das machte mich denken ohne Logik.
Ich kopierte einzigen alias, um die neue keystore mit
Und dann änderte ich alias Passwort dasselbe wie für keystore-Passwort mit:
Schließlich war ich in der Lage zu Unterschreiben, meine apk.
Es sieht aus wie dumme Fehler, die verschwenden können, einen Tag der Entwicklung.
InformationsquelleAutor der Antwort
Hatte gerade dieses Problem - alle von einer plötzlichen Android Studio habe meine Passwörter vergessen und nicht die, die ich hatte in die gradle-Datei. Ich habe das gleiche keyfile und Passwort in der gleichen Projekt-seit 6 Jahren!
Also habe ich Sie manuell, aber es scheiterte überprüfung von Zeit zu Zeit. Ich habe versucht, einige Dinge wie-caches ungültig zu machen, Neustart von Android Studio und wiederherstellen einer Sicherung der keystore aber nichts half.
Schließlich in purer Verzweiflung habe ich versucht zu wechseln, das keystore-Kennwort und schlüsselkennwort. Und siehe da - es funktionierte! Stellt sich heraus, ich hatte Wechsel der Passwörter, wenn ich trat Sie in den Gradle-build-file vor ein paar Jahren, und aus irgendeinem Grund habe ich nie bemerkt.
Fazit: nie 100% sicher sein, dass Sie tun es richtig.
InformationsquelleAutor der Antwort