245 votes

Clé de hachage pour l'application Android-Facebook

Je travaille sur une application Android, dans laquelle je veux intégrer une fonctionnalité de publication sur Facebook. J'ai téléchargé le SDK Facebook-Android, et j'ai obtenu le readme.md (fichier texte) là-dedans, dans lequel il est mentionné de générer le hachage de clé pour Android. Comment puis-je le générer?

2 votes

Vous pouvez vérifier ce lien javatechig.com/2012/12/10/…

2 votes

Vérifiez ceci Pour ceux qui rencontrent toujours des problèmes,

0 votes

Générer HashKey pour le mode de débogage et de publication en utilisant ceci. stackoverflow.com/questions/7506392/…

325voto

Avi C Points 3224

Voici les étapes -

  1. Téléchargez openssl depuis Google code (Si vous avez une machine 64 bits, vous devez télécharger openssl-0.9.8e X64 pas la dernière version)

  2. Extrait le. créez un dossier- OpenSSL dans C:/ et copiez le code extrait ici.

  3. détectez le chemin du fichier debug.keystore. Si vous ne le trouvez pas, recherchez dans C:/ et utilisez le chemin dans la commande de l'étape suivante.

  4. détectez le chemin de votre keytool.exe et allez à ce répertoire/ dans l'invite de commande et exécutez cette commande sur 1 ligne-

    $ keytool -exportcert -alias androiddebugkey -keystore "C:\Documents and Settings\Administrator.android\debug.keystore" | "C:\OpenSSL\bin\openssl" sha1 -binary |"C:\OpenSSL\bin\openssl" base64

    • il vous demandera un mot de passe, mettez android
    • c'est tout. vous obtiendrez un hachage-clé

Pour plus d'informations visitez ici

5 votes

Cette réponse a presque fonctionné pour moi sur Win7 x64. Cependant, le certificat encodé résultant était incorrect. La réponse de Bryan Bedard ci-dessous produira la valeur de certificat correcte. Je suppose que le tubage sur Windows est en quelque sorte le coupable.

12 votes

Note pour les utilisateurs 64 bits : cela fonctionne avec la version openssl-0.9.8e X64 uniquement, ne pas utiliser avec openssl-0.9.8k X64

0 votes

J'ai téléchargé openssl-0.9.8e X64 pour mon système et je l'ai extrait. Il ne contient rien sauf un fichier avec quelques données. S'il vous plaît aidez-moi à en savoir plus.

247voto

Bassem Samy Points 1149

[MODIFIER 2020]-> Maintenant, je recommande totalement la réponse ici, beaucoup plus facile en utilisant Android Studio, plus rapide et pas besoin d'écrire de code - celui ci-dessous était de l'époque d'Eclipse :) -.

Vous pouvez utiliser ce code dans n'importe quelle activité. Il enregistrera la clé de hachage dans le logcat, qui est la clé de débogage. C'est facile, et c'est un soulagement par rapport à l'utilisation de SSL.

PackageInfo info;
try {
    info = getPackageManager().getPackageInfo("com.vous.nom", PackageManager.GET_SIGNATURES);
    for (Signature signature : info.signatures) {
        MessageDigest md;
        md = MessageDigest.getInstance("SHA");
        md.update(signature.toByteArray());
        String something = new String(Base64.encode(md.digest(), 0));
        //String something = new String(Base64.encodeBytes(md.digest()));
        Log.e("clé de hachage", something);
    }
} catch (NameNotFoundException e1) {
    Log.e("nom non trouvé", e1.toString());
} catch (NoSuchAlgorithmException e) {
    Log.e("aucun tel algorithme", e.toString());
} catch (Exception e) {
    Log.e("exception", e.toString());
}

Vous pouvez supprimer le code une fois que vous connaissez la clé ;)

31 votes

Les gars, faites attention, après la création de l'APK, le hachage de clé est changé ! car en utilisant ce code vous obtenez le hachage de la keystore de débogage, mais lors de la création de l'APK, c'est un autre hachage, il faut le capturer à partir des journaux après avoir essayé votre APK sur l'émulateur, puis supprimer le code et exporter à nouveau sans ce journal :) - je sais que c'est une corvée :D mais pour moi c'était plus simple que keytool, bonne chance;)

4 votes

Opensssl crée toujours des problèmes. Cette méthode est la meilleure. Il suffit de créer une application vide et d'imprimer la clé. Utilisez-la. Merci mec!!

1 votes

Ceci est de loin la solution la plus facile. En utilisant la commande keytool, j'obtenais les mauvaises empreintes de clé (je n'ai aucune idée pourquoi, j'ai décidé que je ne me souciais pas assez pour enquêter). Cela a fonctionné et a littéralement pris 5 minutes pour obtenir les empreintes de clés de débogage et de publication. +1

142voto

Shahar Barsheshet Points 1060

J'ai créé un petit outil pour Windows et Mac OS X. Il suffit de jeter le fichier du trousseau de clés et d'obtenir la clé de hachage.

Si vous voulez le fichier debug.keystore par défaut, utilisez l'alias et le mot de passe par défaut. Sinon, utilisez votre propre fichier de trousseau de clés et vos valeurs.

Jetez un coup d'oeil, téléchargez la version Windows ou téléchargez la version Mac OS X (Dev-Host peut être parfois hors service... donc si le lien est cassé, envoyez-moi un message et je le réparerai).

J'espère que cela vous aidera...

31 décembre 2014 - ÉDITION : Changement d'hébergeur pour AFH. Veuillez me faire savoir si les liens sont cassés

21 novembre 2013 - ÉDITION :

Comme les utilisateurs l'ont demandé, j'ai ajouté un emplacement de trousseau de clés par défaut et un bouton DONATE. N'hésitez pas à l'utiliser si je vous ai aidé. :)

Capture d'écranCapture d'écran 2

0 votes

Chemin par défaut vers debug.keystore: C:\Utilisateurs\nomutilisateur\.android\debug.keystore

0 votes

@MortenHolmgaard, je vais essayer de l'ajouter dans un avenir proche, merci pour votre commentaire.

1 votes

Meilleure. Méthode. Jamais. Où se trouve le bouton de don ?

66voto

Bryan Bedard Points 1043

Les instructions actuellement présentes dans le Tutoriel Android de Facebook ne fonctionnent pas bien sous Windows. Leur exemple montre comment rediriger la sortie de keytool vers openssl, mais si vous essayez cela sous Windows, la sortie n'est pas valide pour une raison quelconque. J'ai découvert que je devais utiliser des fichiers intermédiaires pour que cela fonctionne correctement. Voici les étapes qui ont fonctionné pour moi :

Commencez par télécharger openssl pour Windows depuis Google.

C:\Users\Me>keytool -exportcert -alias my_key -keystore my.keystore -storepass MOT_DE_PASSE > mycert.bin

C:\Users\Me>openssl sha1 -binary mycert.bin > sha1.bin

C:\Users\Me>openssl base64 -in sha1.bin -out base64.txt

Après avoir exécuté ces commandes, le hash valide est stocké dans le fichier base64.txt. Copiez et collez ceci dans les paramètres de votre application sur Facebook.

0 votes

Fonctionne parfaitement, tout le reste échouait.

2 votes

Quelle PITA - mais Bryan a raison! La commande affichera presque toujours un hash, que votre chemin soit incorrect, que le mot de passe soit incorrect, ou que les tuyaux ne fonctionnent pas correctement - vous OBTENEZ TOUJOURS UN HASH mais cela ne fonctionnera pas. Donc (sous Windows) j'ai abandonné Powershell et j'ai essayé Cygwin - ça ne fonctionnait toujours pas. Ce n'est qu'après avoir copié le fichier debug.keystore dans le répertoire de travail que j'ai pu le lancer et le faire fonctionner!!

2 votes

Donc, en résumé, sur Windows, utilisez la technique de Bryan pour le diviser, OU utilisez cygwin avec votre fichier de keystore dans le répertoire de travail : keytool -exportcert -alias androiddebugkey -keystore debug.keystore | openssl sha1 -binary | openssl base64 Si cela ne vous demande pas de mot de passe, alors il n'a pas trouvé correctement le fichier de keystore.

54voto

AZone Points 2153

Ceci est ce qui est donné sur la page officielle de Facebook:

   keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

Laissez-moi diviser cette commande en fragments.

  1. Cherchez "keytool.exe". Vous pouvez le rechercher sur le lecteur C:. Vous pouvez le trouver dans "java jdk" ou "java jre". Si vous avez installé plusieurs versions, choisissez-en une.

  2. Ouvrez une invite de commandes et allez dans le répertoire ci-dessus où vous avez trouvé "keytool.exe".

    Supprimez le "exe`" et collez la commande ci-dessus fournie sur la page Facebook.

  3. Vous obtiendrez une erreur en entrant ceci que OpenSSL n'est pas reconnu comme commande d'entrée de sortie. Solution : Téléchargez "Openssl" depuis OpenSSL (si vous avez une machine 64 bits vous devez télécharger openssl-0.9.8e X64). Extrayez et enregistrez-le n'importe où... Je l'ai enregistré sur le lecteur C: dans le dossier OpenSSl

  4. Remplacez le openssl dans la commande ci-dessus dans laquelle vous obteniez une erreur d'OpenSSL par "C:\OpenSSL\bin\openssl" aux deux endroits après le pipe, "|".

  5. Si on vous demande un mot de passe, entrez android.

Et vous obtiendrez votre clé de hachage. Pour plus d'étapes, consultez à nouveau la page Facebook.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X