web-dev-qa-db-fra.com

Comment gérer un mot de passe KeyStore perdu sous Android?

J'ai oublié mon mot de passe du magasin de clés et je ne sais plus trop quoi faire (je ne peux pas ou ne veux pas m'excuser). Je souhaite mettre à jour mon application car je viens de corriger un bug mais ce n'est plus possible. Que se passe-t-il si j'utilise le même magasin de clés mais crée une nouvelle clé? Aurais-je toujours la possibilité de mettre à jour l'application et si ce n'est pas possible, comment puis-je informer les utilisateurs de la version mise à jour?

Si quelqu'un a eu un problème comme celui-ci ou a rencontré des problèmes, quel conseil pouvez-vous donner pour aider à remédier à la situation? Heureusement, c'est une application gratuite.

65
irobotxxx

Voir ce lien

C'est regrettable, mais lorsque vous perdez votre magasin de clés ou le mot de passe de votre magasin de clés, votre application devient orpheline. La seule chose que vous pouvez faire est de soumettre votre application au marché sous une nouvelle clé.

TOUJOURS sauvegarder votre magasin de clés et noter les mots de passe dans un endroit sûr.

34
Zebaz

Je viens de rencontrer ce problème moi-même. Heureusement, j'ai trouvé le mot de passe dans le fichier temporaire de Gradle. Juste au cas où quelqu'un atterrirait ici, essayez de chercher

..Project\.gradle\2.4\taskArtifacts\taskArtifacts.bin

C'était là en texte clair. En général, si vous vous souvenez d'au moins une partie de votre mot de passe, essayez de rechercher un fichier contenant cette sous-chaîne et espérons que vous trouverez quelque chose.

Je voulais le jeter ici, peut-être que cela aiderait éventuellement quelqu'un.

144
ElDoRado1239

Si un mot de passe incorrect est fourni, même une seule fois, il répète lors des tentatives suivantes:

Fichier de clés altéré ou mot de passe incorrect.

Même lorsque vous fournissez le bon. Je l'ai essayé plusieurs fois, c'est peut-être une sorte de protection.
Fermez l’assistant d’exportation et relancez-le avec le mot de passe correct, maintenant cela fonctionne :) 

41
Fr3eSKo

La brute est votre meilleur pari!

Voici un script qui m'a aidé:

https://code.google.com/p/Android-keystore-password-recover/wiki/HowTo

Vous pouvez éventuellement lui donner une liste de mots le mot de passe pourrait inclure pour une récupération très rapide (pour moi cela a fonctionné en <1 sec)

30
Artur

Sur un utilitaire de console de lancement MAC et faites défiler jusqu'à ~/Bibliothèque/Journaux -> AndroidStudio -> idea.log.1 (ou tout ancien numéro de journal). .

Question originale: link

19
Georgi Koemdzhiev

En fait, perdre le keystore password n'est pas un problème.
Vous pouvez créer un nouveau magasin de clés et définir un nouveau mot de passe pour celui-ci à l’aide de la commande keytool ci-dessous. Vous n'avez pas besoin du mot de passe du magasin de clés d'origine pour cela:

keytool -importkeystore -srckeystore path/to/keystore/with/forgotten/pw \
-destkeystore path/to/my/new.keystore

Lorsque vous y êtes invité, créez un mot de passe pour votre new.keystore et pour mot de passe du magasin de clés source (que vous avez perdu) et appuyez simplement sur Entrée .
Vous obtiendrez un avertissement sur l'intégrité non cochée, et vous obtiendrez votre new.keystore identique à l'original avec le nouveau mot de passe. 

La raison pour laquelle cela fonctionne est que keystore password est uniquement utilisé pour fournir l’intégrité de la keystore, elle ne chiffre pas les données avec elle, contrairement à private key password, qui garde en fait votre clé privée chiffrée.

Veuillez noter que vous devez connaître votre private key password pour signer vos applications. Eh bien, si c'est pareil que keystore password oublié, alors vous pouvez avoir recours à la force brutale comme dans la réponse de @ Artur.

Cette approche a toujours fonctionné pour moi.

14
kiruwka

Je pense que je dois en faire une réponse car cela ne pourrait pas être que des commentaires. Comme @ ElDoRado1239 dit dans sa réponse (n’oubliez pas de revenir sur sa réponse;)

  • La recherche de ..Project\.gradle\2.4\taskArtifacts\taskArtifacts.bin dans mon cas était dans ..Project\.gradle\2.2.1\taskArtifacts\taskArtifacts.bin parce que j'utilise gradle 2.2.1
  • Ensuite, cherchez storePassword comme @Moxet Khan dit dans des commentaires ... dans mon cas, était à la ligne signingConfig.storePassword¬í t my.forgoten.password—signingConfig.keyAlias

J'espère aider quelqu'un d'autre !!!

12
Gueorgui Obregon

Heureusement, j'ai trouvé mon mot de passe perdu ainsi que le chemin d'accès au magasin de clés et le nom d'alias figurant dans les journaux de mon studio Android.

si vous utilisez des machines Linux/Unix. 

Accédez au répertoire des journaux de bibliothèque

cd ~/Library/Logs/

si vous vous souvenez de la version de votre studio Android sur laquelle vous avez construit la dernière version APK. Accédez à ce répertoire

ex: cd AndroidStudio1.5 /

Vous y trouverez les fichiers journaux. dans l'un des fichiers journaux (idea.log) , vous trouverez vos informations d'identification du magasin de clés

exemple 

-Pandroid.injected.signing.store.file=/Users/myuserid/AndroidStudioProjects/keystore/keystore.jks, 
-Pandroid.injected.signing.store.password=mystorepassword, 
-Pandroid.injected.signing.key.alias=myandroidkey, 
-Pandroid.injected.signing.key.password=mykeypassword,

J'espère que cela aidera les utilisateurs d'Android Studio

12
Ajanthan Mani

Après avoir passé presque une journée à rechercher les options possibles pour récupérer le mot de passe du magasin de clés perdu dans Android Studio. J'ai trouvé les 4 manières possibles de le faire:

  1. Utilisez AndroidKeystoreBrute pour récupérer votre mot de passe. Cette méthode est très utile lorsque vous avez partiellement oublié votre mot de passe, cela signifie que vous avez encore quelques indices sur votre mot de passe. 

  2. Vous pouvez également le récupérer via les fichiers journaux d'Android Studio si vous avez déjà publié l'application (pour laquelle vous avez trouvé le mot de passe du magasin de clés) avec le même ordinateur. Reportez-vous au répertoire suivant:

    Mac OS X

    ~/Bibliothèque/Journaux/AndroidStudio/idea.log.1

    Linux (emplacement possible)

    / home/nom_utilisateur/AndroidStudio/system/log

    Windows (emplacement possible)

    C:\Utilisateurs\nom_utilisateur\AndroidStudio\system\log

    et recherchez Pandroid.injected.signing.key.password dans le fichier. Vous verrez le mot de passe si vous avez déjà signé l'application avec la même version d'Android Studio dans laquelle vous recherchez actuellement. 

  3. Vous pouvez également récupérer le mot de passe via le répertoire .gradle de votre projet. Cherchez le chemin suivant

    répertoire_projet/.gradle/2.4/taskArtifacts/taskArtifacts.bin.

    Note: Cela ne semble pas fonctionner pour les versions plus récentes de Gradle (2.10 et plus). 

  4. Si aucune des solutions ci-dessus ne fonctionne, essayez celle-ci, mais vous devez également disposer de l'application Android Studio IDE ou de ses préférences, dans lesquelles le mot de passe du fichier de clés de votre projet a été enregistré précédemment moment de la signature de l'application). Vous pouvez obtenir les préférences IDE à partir du chemin suivant:

    Mac OS X

    ~/Bibliothèque/Journaux/AndroidStudio/idea.log.1

    Linux (emplacement possible)

    / home/nom_utilisateur/AndroidStudio

    Windows (emplacement possible)

    c:\utilisateur\nom d'utilisateur\.AndroidStudio

    Utilisez simplement l’ancien Android Studio IDE si vous avez importé les préférences de l’ancien IDE dans le nouvel IDE et placez également le fichier de stockage de clés dans le même chemin que celui utilisé précédemment. signé et enregistrer le mot de passe la dernière fois. 

    De cette façon, une fois que vous ouvrez le projet et essayez le fichier Build-> Generate Signed APK et sélectionnez le fichier de magasin de clés à partir de l'ancien emplacement. Il récupérera automatiquement le mot de passe et continuera à générer l'APK signé en vue de sa libération.

    Une fois la version APK générée avec succès, vous pouvez suivre l'option 2 mentionnée précédemment pour vérifier votre mot de passe dans votre fichier journal pour la version APK récemment générée. 

9
EEJ

Pour tous ceux qui peuvent être confrontés à cela, je voulais partager une réponse qui pourrait être le cas pour vous ou pour d’autres personnes parcourant cet article (comme moi).

J'utilise Eclipse et y ai créé mon magasin de clés pour ma version 1.0. Avance rapide de 3 mois et je voulais le mettre à jour à 1.1. Lorsque j'ai choisi Exporter ... dans Eclipse et choisi ce magasin de clés, aucun de mes mots de passe dont je me souvenais ne fonctionnait. Chaque fois qu'il disait "Keystore altéré ou mot de passe incorrect." Je suis sur le point de me préparer à exécuter un programme de force brute aussi longtemps que je pourrai rester debout (environ une semaine) pour tenter de le faire fonctionner.

Heureusement, je signe mon fichier .apk non signé en dehors d’Eclipse. Voilà, ça a marché! Mon mot de passe avait été correct tout le temps! Je ne sais pas pourquoi, mais le signer dans Eclipse via le menu Export signalait une erreur même lorsque mon mot de passe était correct.

Donc, si vous obtenez cette erreur, voici mes étapes (tirées de documentation Android ) pour vous aider à préparer votre apk pour le marché.

REMARQUE: pour obtenir un fichier apk non signé d'Eclipse: cliquez avec le bouton droit de la souris sur le projet> Outils Android> Exporter l'application non signée.

  1. Signer un fichier apk non signé avec le magasin de clés

    une. Ouvrez invite administrateur cmd et accédez à "c:\Programmes\Java\jdk1.6.0_25\bin" ou à votre version de Java (où vous avez copié le fichier apk non signé et votre magasin de clés).

    b. at cmd Invite avec le fichier de magasin de clés et l'apk non signé dans le même répertoire, entrez la commande suivante: jarsigner -keystore mykeystorename.keystore -verbose unsigned.apk nomaliasdéaliste

    c. il dira: "Entrez la phrase secrète du magasin de clés:". Entrez-le et appuyez sur Retour.

    ré. ===> Le succès ressemble à ceci: 

    adding: META-INF/MANIFEST.MF
    ...
    signing: classes.dex
    

    e. la version non signée est écrasée à la place, votre fichier apk signé porte désormais le même nom que le fichier non signé

  2. Utilisez ZipAlign pour compacter le fichier apk signé en vue de sa distribution sur le marché.

    une. ouvrez admin cmd Prompt et accédez à "c:\AndroidSDK\tools" ou à l'emplacement d'installation du SDK Android.

    b. entrez cette commande: zipalign -v 4 signed.apk signedaligned.apk

    c. ===> Le succès ressemble à ceci:

    Verifying alignment of signedaligned.apk (4)
    50 META-INF/MANIFEST.MF (OK - compressed)
    ...
    1047129 classes.dex (OK - compressed)
    Verification succesful
    

    ré. le fichier signé et aligné est à signedaligned.apk (le nom de fichier que vous avez spécifié dans la commande précédente)

========> PRÊT À SOUMETTRE À MARKETPLACE

9
ckbhodge

 Go to taskHistory

Enfin, j'ai trouvé la solution après avoir passé deux jours ...

Suivez ces étapes:

  1. Aller au projet
  2. Dans .gradle trouver votre dossier de version gradle dans mon cas, il était 4.1 (voir photo)
  3. développez le dossier 4.1, puis dans le dossier taskHistory, vous trouverez le fichier taskHistory.bin.
  4. Ouvrez le fichier taskHistory.bin dans le studio Android même.
  5. Recherchez ".storePassword" .. Voilà ce que vous avez obtenu avec votre mot de passe de magasin de clés.

Cela a vraiment fonctionné pour moi.

Essayez ceci et joyeux codage !!!

6
Arjun G

Commencez par télécharger AndroidKeystoreBrute_v1.05.jar, puis suivez l’image donnée.  enter image description here

préparez un fichier wordlist comme (wordlist.txt), dans ce fichier, donnez votre indice comme 

Question secrète de mot de passe:

utilisateurs

Utilisateurs

Mot de passe

mot de passe

pa55Word

Mot de passe

@

*

#

$

Et

1

2

123

789

U obtiendra votre mot de passe.

6

SOLUTION 2019 (Windows, Android Studio 3.3, version 4.10):

Cette solution ne fonctionne que si la case "Mémoriser le mot de passe" a été cochée.

Tout d'abord, taskArtifacts.bin n'existent pas pour cette version de gradle et idea.log affiche des astérisques pour les mots de passe. C’était des solutions classiques qui ne fonctionnaient pas pour moi.

Où j'ai trouvé les mots de passe en texte clair: C:\Utilisateurs\{nom d'utilisateur}\AndroidStudioProjects\{projet}\app\build\intermediates\signature_config\version\sortie\signature-config.json

Clés: mStorePassword et mKeyPassword.

J'espère vraiment que cela aide quelqu'un d'autre.

4
Daniel Nascimento

Zach Klippenstein sur Google+ avait le même problème que vous. Vous pouvez suivre le fil ici .

Ajouter ceci comme une autre possibilité. La réponse est peut-être juste sous votre nez - dans le fichier build.gradle de votre application s'il vous est déjà arrivé de spécifier une configuration de signature:

signingConfigs {
    config {
        keyAlias 'My App'
        keyPassword 'password'
        storeFile file('/storefile/location')
        storePassword 'anotherpassword'
    }
}

Vous sentez-vous chanceux?

3
ScottyB

J'ai trouvé le mot de passe dans 

C:\Users\{Username}\.AndroidStudio2.2\system\log\idea.txt

Rechercher

Pandroid.injected.signing.store.password
2
Yusuf Demirag

J’ai eu le même problème en même temps ... Même si, avec la signature d’application par Google Play, perdre le fichier de clés ou son mot de passe n’était plus un problème comme avant, toujours en tant que développeur, nous préférons changer de mot de passe et utiliser un fichier de magasin généré. sans attendre quelques jours à google pour y faire face . (Pour traiter ce problème avec Google, utilisez ce link pour faire une demande) Pour traiter ce problème nous-mêmes, Commencez par télécharger deux fichiers. Les fichiers Java de ce link . Ensuite, compilez ChangePassword.Java par la commande javac ChangePassword.Java . Ensuite, vous pourrez exécuter 

Java ChangePassword <oldKeystoreFileName.keystore> <newKeystoreFileName.keystore>

Modifiez oldKeystoreFileName.keystore avec le chemin/nom de votre fichier de clés actuel et newKeystoreFileName.keystore avec le chemin/nom du nouveau fichier de clés généré .

Entrer le mot de passe du magasin de clés:

. Entrez simplement ce que vous préférez :) inutile d’être le mot de passe original qui a été perdu. Puis entrez le nouveau mot de passe avec *

nouveau mot de passe keystore:

  • Voila, c'est tout. Cela ne changera pas la somme de contrôle de votre magasin de clés et ne posera aucun problème de signature ou de téléchargement d'application sur play.google events.
2
SIW

La force brute d'Android ne fonctionnera pas si vos deux mots de passe sont différents, de sorte que la meilleure option pourrait ressembler à celle-ci: essayez de trouver le fichier nommé ainsi. 

log.idea 

dans votre C:/utilisateurs/votre compte nommé alors vous pourriez trouver que là-bas dans le dossier Android ouvrez ce fichier lpg.idea dans le bloc-notes et ensuite rechercher

alias 

en utilisant l'option de recherche dans le bloc-notes, vous constaterez que le mot de passe, ainsi que les alias et alias passwors y ont été affichés

2
Kawal Singh

Ouvrez taskHistory.bin et recherchez storePassword

1
MANOJ YADAV

Allez au taskhistory.bin dans le dossier .gradle du mot de passe de recherche de votre projet. Faites défiler jusqu'à trouver le mot de passe.

1
Aryan Soni

Pour résumer, il y a 3 réponses à cette question (et la solution n'est pas donnée par la réponse acceptée):

  1. Si vos journaux sont intacts, vous pouvez trouver le mot de passe dans les fichiers journaux d'Android Studio conformément à la réponse Georgi Koemdzhiev ci-dessus.

  2. Vous pouvez récupérer le mot de passe à partir du fichier 'taskArtifacts.bin' dans votre répertoire .gradle conformément aux réponses ElDoRado1239 et Gueorgui Obregon ci-dessus. Cela ne semble pas fonctionner pour les nouvelles versions de Gradle (2.10 et plus).

  3. Utilisez AndroidKeystoreBrute pour deviner ou forcer votre mot de passe conformément à la réponse de Srinivas Keerthiprakasam ci-dessus.

Toutes ces 3 solutions sont couvertes en profondeur à cette lien .

1
Varun

Dans mon cas, je me suis trompé de nom d'alias, même si j'ai enregistré le mot de passe correct. Alors j'ai pensé que c'était le mauvais mot de passe (en utilisant ionic package), alors j'ai utilisé cette commande pour obtenir le nom d'alias

keytool -list -v -keystore 

Et j'ai pu utiliser le magasin de clés à nouveau!

1
cbyte

C:\Utilisateurs\admin\AndroidStudioProjects\TrumpetTVChannel2.gradle\2.14.1\taskArtifacts\taskArtifacts.bin

Essayez d'abord de créer un nouveau magasin de clés .... puis ouvrez taskArtifacts.bin avec le bloc-notes et recherchez le mot de passe que vous venez de donner .... vous pourrez trouver les mots proches du mot de passe que vous venez de donner, puis rechercher ces mots près de votre mot de passe dans le même fichier .... vous pourrez comprendre le mot de passe ..... :)

1
AK Jayapalan

SOLUTION 2018: signez l'application avec le nouveau fichier de clés si vous manquez un mot de passe ou un fichier jks.

1) Créer un nouveau fichier keystore.jks avec la ligne de commande (pas le menu de génération de studio Android)

keytool -genkeypair -alias upload -keyalg RSA -keysize 2048 -validity 9125 -keystore keystore.jks

Exemple Windows: "C:\Program Files\Android\Android Studio\jre\bin\keytool.exe" -genkeypair -alias upload -keyalg RSA -keysize 2048 -validity 9125 -keystore "C:\keystore_new.jks"

2) Générer un fichier .pem à partir du nouveau magasin de clés

keytool -export -rfc -alias upload -file upload_certificate.pem -keystore keystore.jks

Exemple Windows: "C:\Program Files\Android\Android Studio\jre\bin\keytool.exe" -export -rfc -alias upload -file "C:\upload_cert.pem" -keystore "C:\keystore_new.jks"

3) Utilisez ce formulaire d'assistance, définissez "problème de magasin de clés" et ajoutez à la pièce jointe un fichier .pem:https://support.google.com/googleplay/Android-developer/contact/otherbugs

4) 12-48h votre nouveau magasin de clés est activé. Mettez à jour votre application sur Playstore avec un nouvel apk signé avec un nouveau magasin de clés: D

0
PTKDev

Si rien ne fonctionne, essayez ces lignes. Déplacez-vous sur le chemin où est stocké .jks. Exécutez cette commande dans l'invite de commande. Il vous demandera un mot de passe, ignorez-le et appuyez sur Entrée. 

keytool -list -keystore sample.jks

0
AMAN SINGH

Si vous êtes un utilisateur Mac, essayez recherchez l’application Keychain Access. Mon mot de passe y a été enregistré sous Passwords nommé org.jetbrains.Android.exportSignedPackage.KeystoreStep$KeyStorePasswordRequestor. Vous pouvez également rechercher dans le trousseau d'accès pour Android pour trouver le mot de passe dans l'application Trousseau.

Je ne sais pas comment le mot de passe a fini par arriver là. Mais je ne me rappelle pas l'avoir mise là. Donc, il faut que Android Studio. J'espère que c'est utile.

Remarque: n'oubliez pas de Rebuild Project ou Clean Project avant d'essayer de signer avec un mot de passe mis à jour. Sinon, Android Studio risque de ne pas créer l'apk bien que le mot de passe soit correct.

0

Pas besoin d'utiliser la force brutale, un moyen simple est de trouver votre mot de passe en texte brut.

aller à:

C:\Users\<your username>\AndroidStudioProjects\WhatsAppDP\.gradle\2.2.1\taskArtifacts

Ouvrir:

taskArtifacts.bin 

lorsque vous ouvrez taskArtifacts.bin peut sembler chiffré, ne vous inquiétez pas de la recherche de ".keyPassword" plusieurs fois. Ensuite, vous trouverez votre mot de passe en clair. Cela peut ressembler à:

signingConfig.keyPassword¬í t <your password>Æù

J'espère que c'était utile.

0
jfindley

Dans mon cas, j'avais mis à niveau mon Android Studio de la version 2.3 à la version 3.0.1. Lorsque j'essayais de générer un apk signé pour une nouvelle mise à jour, j'avais l'erreur "Le magasin de clés était altéré ou le mot de passe était incorrect". J'avais mon magasin de clés précédent et j'étais absolument sûr du mot de passe; en les utilisant, j'avais déjà mis à jour l'application plusieurs fois. Après avoir recherché beaucoup, aucune des solutions ne fonctionnait pour moi. Voici ce que j'ai fait.

  • Ouvert un autre projet.
  • Importé mon projet en utilisant Fichier/Nouveau/Importer un projet
  • Une fois que Gradle a été construit, j'ai essayé de générer un apk signé. Construire/Générer un APK signé
  • Cliqué sur "Choisir existant" et fourni le chemin d'accès à mon magasin de clés.
  • saisi le mot de passe de mon magasin de clés
  • sélectionné l'alias clé
  • entré mon mot de passe clé (dans mon cas, le mot de passe de la clé de stockage et le mot de passe de la clé sont identiques)
  • Cliquez sur next et sur le chemin fourni pour le nouvel Apk, puis cochez les deux cases. 
  • Nouveau APK a été généré avec succès. 

J'espère que cela aide quelqu'un.

0
Jawid Mowahed

J'ai connu le même problème, j'ai essayé ci-dessous les étapes pour résoudre le problème: -

  1. Create sign apk avec la création d'un nouveau magasin de clés et d'un nouveau mot de passe.

  2. Maintenant, créez à nouveau le signe apk en utilisant votre ancien magasin de clés (magasin de clés utilisé au moment du téléchargement précédent de la construction de l’apk), mais utilisez maintenant un nouveau mot de passe pour le magasin de clés.

  3. Maintenant, vous allez définitivement créer une signature apk avec un ancien magasin de clés.

    • J'espère que cette solution vous aidera.
0
Rahul Jadhav

Eh bien, pour rechercher un mot de passe de magasin de clés perdu, vous pouvez essayer ceci. Pour moi, la solution suivante a plutôt bien fonctionné.

trouvez les fichiers journaux des idées dans ~/Library/Logs/AndroidStudio2.0. Vous pouvez également les localiser en ouvrant Android Studio-> Aide-> Afficher le journal dans le gestionnaire de fichiers.

Ouvrez le fichier idea.log. Remarque: Il peut y avoir plusieurs fichiers nommés idea.log.1, idea.log.2 etc. Recherchez chacun de ces mots jusqu'à ce que vous trouviez le mot de passe.

Recherchez “Pandroid.injected.signing.key.password” et vous pourrez voir le mot de passe clé.

J'espère que ça aide...

0
gagan bhutani