Tout récemment, j'ai eu un problème avec une clé de stockage. Je sais qu'il ya beaucoup de questions à propos de ce problème, déjà. J'ai tout lu et Googlé furieusement.
Erreur:
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
Le logiciel que je suis en utilisant:
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
Dernière Plugin ADT
Le dernier Android SDK
Voici ce que je sais:
- Je n'ai pas perdu le mot de passe et il n'a jamais changé.
- Je ne peux pas récupérer le mot de passe(je sais que le pass).
- Je ne peut pas se connecter à une application existante avec une clé différente, sans relâcher une nouvelle application(Donc je ne peux pas publier les mises à jour).
Voici ce que j'ai fait:
- Je l'ai désinstallé et ré-installé Eclipse de nombreuses fois.
- Je l'ai désinstallé et ré-installé l'android plugin ADT.
- J'ai supprimé et re-téléchargé les derniers SDK Android à de nombreuses reprises.
- Je l'ai désinstallé et ré-installé JDK7.
- J'ai essayé d'utiliser les sauvegardes de mon fichier de clés.
- J'ai vérifié le MD5 de contrôle à l'aide de "md5sum du fichier de clés" et comparaison avec les sauvegardes(même MD5 sortie - non altéré).
- J'ai essayé de brute-forcer le magasin de clés(j'ai récupéré le mot de passe que je connaissais).
- J'ai créé une clé de test(avec le réglage actuel) et testé le mot de passe et il semble bien fonctionné(si quelque chose a changé).
- J'ai essayé d'exporter le android .apk manuellement et ensuite essayé de le signer(en Dehors d'Eclipse).
Voici comment je l'exportation d'une application signée:
- Par le biais de l'Éclipse: l'Exportation de l'aide de la commande Fichier > exporter > Exporter l'Application Android.
- Avant JDK7: jarsigner -verbose -keystore FICHIER de magasin de clés ALIAS.
- Avec JDK7: jarsigner -verbose-sigalg MD5withRSA -digestalg SHA1 -keystore FICHIER de magasin de clés ALIAS.
Qu'est ce qu'il y a à gauche de la figure ou essayer?
Certaines des références/Url dire de retirer la confiance.certs" fichier?Essayez de supprimer le "debug.keystore"?Serait la mise à jour d'Eclipse ou de l'une de Android outils de développement affecter mon fichier de clés?Serait la mise à jour de Java à partir de jdk6 à jdk7 créer des problèmes?Cela pourrait-il avoir gâché avec ou modifier la façon dont le jarsigner œuvres de toute façon?
Suggestions des utilisateurs:
- Essayez d'utiliser JDK6, mais j'ai pu récemment à l'exportation d'une application.
-
Vérifié la clé.magasin.mot de passe ou une clé.alias.mot de passe dans mon local.propriétés En décochant la construire automatiquement dans eclipse et le nettoyage de votre projet-
Essayez de supprimer .dossier de métadonnées dans votre espace de travail et d'effacer tous les dossiers temp.
Résumé
- Fichier de stockage des clés n'a pas changé,
- J'ai les mots de passe pour le fichier de stockage des clés,
- J'ai exporté avec succès une application récemment utilisée:
- Eclipse 3.8 (et Eclipse 4.0+),
- Dernière Version De Java 7,
- Dernière Plugin ADT.
- Mon dernier succès de l'exportation et de construire était il y a quelques semaines à l'aide d'Eclipse 3.8, le dernier Android outils et Java 7 avec le même mot de passe.
Mise à jour (6/29/14)
- J'ai utilisé: keytool -list -keystore fichier de stockage des clés pour réussir à prouver et à démontrer que 3 de mes 4 touches de travail.
- Je bruteforced la dernière touche et obtenu le mot de passe du fichier de clés(passer, je le savais déjà), mais le mot de passe ne fonctionne pas quand je rentre à la signature. J'ai utilisé: java-jar AndroidKeystoreBrute_v1.02.jar -m 3 -k KEYSTORE -d LISTE de mots.
- Assez étrangement, parfois, quand je tape mon mot de passe dans l'éclipse très vite, mon alias va se montrer et je peux exporter mon application. (Je sais c'est dingue).
- Mise à jour de version de Java.
Si je tape le mot de passe très vite, il fonctionne, parfois.
Il semble que l'ouverture de l'Éclipse et en entrant le mot de passe la première fois, me permet d'utiliser le fichier de clés.
Évidemment, si tout le reste échoue, je vais devoir créer un nouveau magasin de clés. Je voudrais vraiment obtenir ce résolues, je ne suis pas sûr que faire maintenant, en plus de republier avec une nouvelle clé.
Si la clé ne peut pas être récupéré correctement, je pourrais open source sur Github.
Solution (6/29/14):
Un merci spécial à l'utilisateur Erhannis!
Voici ce que j'ai fait:
La commande d'erreur sur moi à chaque fois:
keytool -importkeystore -srckeystore old.keystore -destkeystore new.keystore -v
Depuis que vous m'avez dit que nous pourrions extraire des clés privées de l'Keystore Java(.jks), j'ai creusé plus profondément et s'est terminé vers le haut en utilisant une variante de la commande. J'ai suivi les liens que vous avez posté ici et ici:
keytool -importkeystore -srckeystore old.keystore -destkeystore new.keystore -deststoretype pkcs12
Après l'extraction de la clé privée et le stockage sous forme de PKCS12, je pense que l'extrait ma clé privée et le mettre dans un tout nouveau Keystore Java:
keytool -importkeystore -srckeystore new.keystore -srcstoretype pkcs12 -destkeystore final.keystore -deststoretype jks
Références:
http://developer.android.com/tools/publishing/app-signing.html#signapp
http://code.google.com/p/android-keystore-password-recover/
Liste de StackOverflow Url j'ai lu:
S'il vous plaît Conseils Nécessaires, Perdu le mot de passe du fichier de clés
Non valide du fichier de clés problème?
Android: j'ai perdu mon android magasin de clés, que dois-je faire?
J'ai perdu mon .fichier de magasin de clés?
J'ai perdu le mot de passe pour android fichier de magasin de clés
Problème l'exécution de mon signée, communiqué de fichier de clés dans Eclipse
Android version keystore question: "fichier de clés a été falsifié, ou mot de passe incorrect"