Comment créer un hachage de clé Facebook Android?

182

Je ne comprends pas du tout ce processus. J'ai pu accéder au dossier contenant le keytool dans le SDK Java. Bien que je continue à recevoir l'erreur openssl non reconnue comme une commande interne ou externe. Le problème est que même si je peux faire fonctionner cela, que ferais-je et avec quoi ensuite?

Somk
la source
si vous utilisez le dernier sdk facebook et si vous avez parfaitement mis votre api facebook, lorsque vous vous connectez, vous cliquez sur connexion dans facebook, puis dans votre logcat, la clé de hachage est imprimée ..
Mehul Ranpara
pour générer votre hachage de clé sur votre ordinateur local, exécutez l'utilitaire keytool de Java (qui devrait être sur le chemin de votre console) sur le keystore de débogage Android. Ceci est, par défaut, dans votre répertoire .android personnel). Sous OS X, exécutez: keytool -exportcert -alias androiddebugkey -keystore ~ ​​/ .android / debug.keystore | openssl sha1 -binaire | openssl base64 Sous Windows, utilisez: - keytool -exportcert -alias androiddebugkey -keystore% HOMEPATH% \. android \ debug.keystore | openssl sha1 -binaire | openssl base64
Rakesh
Pourquoi quelqu'un voudrait-il créer une clé de débogage?
Anders Lindén
J'ai généré le hachage de la clé mais je ne sais pas où mettre cette clé, pourriez-vous me guider? J'exécute Android Studio sur Ubuntu.
Apurva

Réponses:

242

Voici ce que tu dois faire -

Téléchargez openSSl à partir du code Extrayez-le. créez un dossier - OpenSSL dans C: / et copiez le code extrait ici.

détecter le chemin du fichier debug.keystore. Si vous n'avez pas trouvé, effectuez une recherche dans C: / et utilisez le chemin dans la commande à l'étape suivante.

détectez votre chemin keytool.exe et accédez à l'invite de commande dir / in et exécutez cette commande en 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 demandera un mot de passe, mettez Android c'est tout. vous obtiendrez un hachage de clé

coder_For_Life22
la source
quand il demande un mot de passe, puis-je mettre tout ce que je veux?
Somk
5
@Max, le mot de passe par défaut est android.
jamapag le
2
Le hachage de clé ne correspond à aucun hachage de clé stocké Android, ne fonctionne pas
Boldijar Paul
1
Créez d'abord un keystore en allant dans Build -> Build Apk depuis votre studio. indiquez un nom et un mot de passe, etc. Stockez-le sous forme de fichier .jks dans un dossier facilement accessible. Copiez maintenant le chemin et générez la clé en remplaçant ce chemin dans la réponse mentionnée ci-dessus.
buggydroid
1
Cela me montre une erreur: "... Les expressions ne sont autorisées que comme premier élément d'un pipeline. À la ligne: 1 char: 184 ... Jeton inattendu 'sha1' dans l'expression ou l'instruction. ... Les expressions ne sont autorisées que comme le premier élément d'un pipeline. ... Jeton inattendu 'base64' dans l'expression ou l'instruction. + CategoryInfo: ParserError: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId: ExpressionsMustBeFirstInPipeline "
développeur android
175

Pour Linux et Mac

Terminal ouvert:

Pour Debug Build

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

Vous trouverez debug.keystore dans le dossier ".android". Copiez-le et collez-le sur le bureau et exécutez la commande ci-dessus.

Pour la version Build

keytool -exportcert -alias <aliasName> -keystore <keystoreFilePath> | openssl sha1 -binary | openssl base64

REMARQUE: assurez-vous que dans les deux cas, il demande un mot de passe. S'il ne demande pas de mot de passe, cela signifie que quelque chose ne va pas dans la commande. Le mot de passe pour debug.keystore est " android " et pour la libération, vous devez entrer le mot de passe que vous avez défini lors de la création du fichier de clés .

Biraj Zalavadia
la source
3
Pour être clair, le mot de passe est vide. Appuyez simplement sur <enter> lorsque vous y êtes invité.
Tom Redman
J'ai généré le hachage de la clé mais je ne sais pas où mettre cette clé, pourriez-vous me guider? J'exécute Android Studio sur Ubuntu.
Apurva
1
Cette note: "REMARQUE: assurez-vous que dans les deux cas, il demande un mot de passe. S'il ne demande pas de mot de passe, cela signifie que quelque chose ne va pas dans la commande." était essentiel pour résoudre le problème
Bleno Silva
Merci de m'avoir sauvé la vie. Im tyiping mon mot de passe mac pour le mot de passe du keystore tout le temps et j'ai réalisé que c'était faux
Lucky Angelo
1
Même demander un mot de passe ne signifie pas que tout va bien (mauvais mot de passe, mauvais alias de clé). Courez keytool -exportcert -alias <aliasName> -keystore <keystoreFilePath>seul au début, pour voir si tout va bien. De plus, lorsqu'il est envoyé, keytool est en mode non interactif et affiche le mot de passe en texte brut lorsque vous le saisissez. Vous feriez donc mieux d'écrire un petit script qui exécute les commandes séparément.
Pierre
98

Veuillez essayer ceci:

public static void printHashKey(Context pContext) {
        try {
            PackageInfo info = pContext.getPackageManager().getPackageInfo(pContext.getPackageName(), PackageManager.GET_SIGNATURES);
            for (Signature signature : info.signatures) {
                MessageDigest md = MessageDigest.getInstance("SHA");
                md.update(signature.toByteArray());
                String hashKey = new String(Base64.encode(md.digest(), 0));
                Log.i(TAG, "printHashKey() Hash Key: " + hashKey);
            }
        } catch (NoSuchAlgorithmException e) {
            Log.e(TAG, "printHashKey()", e);
        } catch (Exception e) {
            Log.e(TAG, "printHashKey()", e);
        }
    }
Maddy
la source
J'ai généré le hachage de la clé mais je ne sais pas où mettre cette clé, pourriez-vous me guider? J'exécute Android Studio sur Ubuntu.
Apurva
c'est la voie à suivre
Tintinabulator Zea
1
Cela fonctionne si vous appelez pContext.getPackageInfo. Ou supprimez-le simplement d'une fonction et appelez-le dans onCreate de n'importe quelle activité.
Dpedrinha
1
Cela semble maintenant être getPackageManager (). GetPackageInfo ([your-package_name], PackageManager.GET_SIGNATURES)
Jusqu'au
@Apurva Vous pouvez le mettre dans Android SharedPreferences en cas d'utilisation ultérieure de celui-ci.
Maddy
49

OpenSSL: Vous devez l'installer s'il n'est pas préinstallé avec votre système d'exploitation (par exemple, Windows ne l'a pas préinstallé) . Comment installer cela dépend de votre système d'exploitation (pour Windows, vérifiez le lien fourni par coder_For_Life22).

Le moyen le plus simple sans bidouiller est de copier ce binaire openssl.exe sur votre chemin keytool si vous êtes sous Windows. Si vous ne voulez pas faire cela, vous devez l'ajouter à votre PATHvariable d'environnement. Exécutez ensuite la commande fournie dans la documentation.

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

Notez que l'argument après -keystorepointe vers votre fichier de clés de débogage. Cet emplacement dépend également de votre système d'exploitation. Doit être dans l'un des endroits suivants:

  • Windows Vista ou 7 - C: \ Users \ .android \ debug.keystore
  • Windows XP - C: \ Documents and Settings \ .android \ debug.keystore
  • OS X et Linux - ~ / .android / debug.keystore

Si vous avez tout fait correctement, vous devriez être invité à entrer un mot de passe. C'est androidpour le certificat de débogage. Si le mot de passe est correct, la console imprime un hachage (caractères et nombres quelque peu aléatoires).

Prenez-le et copiez-le dans le android key hashchamp à l'intérieur des préférences de votre application sur Facebook. Pour y arriver, accédez à developer.facebook.com/apps , sélectionnez votre application, accédez à Edit settingset faites défiler vers le bas. Après cela, attendez quelques minutes jusqu'à ce que les modifications prennent effet.


la source
J'ai exécuté cela dans cmd et il a généré une très longue liste de caractères ressemblant à un hachage se terminant par un signe = puis rien $ keytool -exportcert -alias androiddebugkey -keystore "C: \ Users \ .android \ debug.keystore" | "C: \ OpenSSL \ bin \ openssl" sha1 -binary | "C: \ OpenSSL \ bin \ openssl" base64
Somk
Cela semble correct. Je viens de le tester sur ma machine, cela faisait 28 caractères pour moi, juste pour vous donner une idée. Maintenant, copiez-le et tout va bien. :)
Je n'ai pas été invité à utiliser l'androïde pharse. Désolé suis-je lent?
Somk du
Pour être honnête, je ne sais pas pourquoi vous n'avez pas été invité à le faire. Mais cela me semble correct. Je veux dire, si vous aviez fait quelque chose de mal, il devrait y avoir un message d'erreur à la place. Copiez-le simplement et voyez si cela fonctionne. Vous pouvez tester certaines des requêtes graphiques avec l' explorateur d'API Graph . Sélectionnez votre application en haut et voyez si vous obtenez des résultats valides. Il devrait cracher une erreur s'il y a quelque chose qui ne va pas. Edit: Et rien de mal à être lent. Nous ne sommes pas pressés. :)
24

pour générer votre hachage de clé sur votre ordinateur local, exécutez l'utilitaire keytool de Java (qui devrait être sur le chemin de votre console) sur le keystore de débogage Android. Ceci est, par défaut, dans votre répertoire .android personnel). Sous OS X, exécutez:

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

Sous Windows, utilisez: -

keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64

J'espère que ceci vous aidera

Ref - développeur du site facebook

Rakesh
la source
J'ai généré le hachage de la clé mais je ne sais pas où mettre cette clé, pourriez-vous me guider? J'exécute Android Studio sur Ubuntu.
Apurva
19

Vous pouvez simplement utiliser une ligne javascript dans la console du navigateur pour convertir une clé de carte hexadécimale en base64. Ouvrez la console dans le dernier navigateur (F12 sur les fenêtres) et collez le code et remplacez - la SHA-1, SHA-256carte hexagonale que le jeu Google fournit sous Release Managment> App signing:

> btoa('a7:77:d9:20:c8:01:dd:fa:2c:3b:db:b2:ef:c5:5a:1d:ae:f7:28:6f'.split(':').map(hc => String.fromCharCode(parseInt(hc, 16))).join(''))
< "p3fZIMgB3fosO9uy78VaHa73KG8="
Christos Lytras
la source
1
Vous êtes une
bouée de
SHA-1 était celui-là.
Travo
19

Voici les détails complets (pour Windows)

1. Téléchargez OpenSSl 3 ou 4 (avec e fonctionnera mieux) en fonction de votre système 32 bits ou 64 bits.

2. Extrayez le zip téléchargé dans le répertoire C

3. Ouvrez le dossier extrait jusqu'à bin et copiez le chemin, cela devrait être quelque chose comme C:\openssl-0.9.8k_X64\bin\openssl (ajoutez \ openssl à la fin)

4. (Obtenez le chemin vers le dossier bin de Jdk, si vous savez comment faire, ignorez cela).

Ouvrez android studio ~ fichier ~ Structure du projet (ctrl + alt + shift + s), sélectionnez l'emplacement du SDK dans le panneau de gauche, copiez l'emplacement du JDK et ajoutez-y / bin

Donc, l'emplacement final du JDK sera comme C:\Program Files\Android\Android Studio\jre\bin

nous suivons cette méthode pour obtenir l'emplacement Jdk car vous pourriez utiliser jdk intégré comme moi

entrez la description de l'image ici

maintenant vous avez l'emplacement OpenSSl et l'emplacement JDK

5. maintenant nous avons besoin de l'emplacement du keystore de débogage, pour cela ouvert C ~> Users ~> YourUserName ~> .android il devrait y avoir un nom de fichier debug.keystore, maintenant copiez l'emplacement du chemin, cela devrait être quelque chose comme

C:\Users\Redman\.android\debug.keystore

6. maintenant ouvrez l'invite de commande et tapez la commande

cd YourJDKLocationFromStep4  

dans mon cas

 cd "C:\Program Files\Android\Android Studio\jre\bin"

7. construisez maintenant la commande suivante

keytool -exportcert -alias androiddebugkey -keystore YOURKEYSTORELOCATION | YOUROPENSSLLOCATION sha1 -binary | YOUROPENSSLLOCATION base64

dans mon cas, la commande ressemblera à

keytool -exportcert -alias androiddebugkey -keystore "C:\Users\Redman\.android\debug.keystore" | "C:\openssl-0.9.8k_X64\bin\openssl" sha1 -binary | "C:\openssl-0.9.8k_X64\bin\openssl" base64

maintenant, entrez cette commande dans l'invite de commande, si vous avez fait quelque chose de bien, il vous sera demandé le mot de passe (le mot de passe est Android)

Enter keystore password:  android

c'est tout, vous recevrez le hachage de clé, copiez-le et utilisez-le

Pour KeyHash signé, construisez la commande suivante

keytool -exportcert -alias YOUR_ALIAS_FOR_JKS -keystore YOUR_JKS_LOCATION | YOUROPENSSLLOCATION sha1 -binary | YOUROPENSSLLOCATION base64

entrez le mot de passe de votre keystore, si vous entrez un mot de passe incorrect, il donnera un hachage de clé incorrect

REMARQUE

Si, pour une raison quelconque, il donne une erreur sur un chemin, enveloppez ce chemin entre guillemets. De plus, le shell d'alimentation Windows ne fonctionnait pas bien pour moi, j'ai utilisé git bash (ou utiliser l'invite de commande).

exemple

keytool -exportcert -alias androiddebugkey -keystore "C:\Users\Redman\.android\debug.keystore" | "C:\openssl-0.9.8k_X64\bin\openssl" sha1 -binary | "C:\openssl-0.9.8k_X64\bin\openssl" base64
Manohar Reddy
la source
1
Merci beaucoup, c'est un guide très détaillé pour les débutants!
Pablo Quemé
@TamimProduction essayez la même procédure ci-dessus avec la version k de openssl et consultez code.google.com/archive/p/openssl-for-windows/downloads
Manohar Reddy
@TamimProduction si vous entrez un mauvais mot de passe, il renverra un mauvais keyhash. avez-vous également reconstruit l'apk après la suppression du keystore?
Manohar Reddy
@TamimProduction téléchargez et installez l'application Facebook, connectez-vous à l'application Facebook. ouvrez votre application et connectez-vous à Facebook. Il vous donnera le hachage de clé dans l'application Facebook, vérifiez s'il est le même que le vôtre
Manohar Reddy
Continuons cette discussion dans le chat .
Tamim Attafi
16

Il existe également une solution courte. Exécutez simplement ceci dans votre application:

FacebookSdk.sdkInitialize(getApplicationContext());
Log.d("AppLog", "key:" + FacebookSdk.getApplicationSignature(this));

Un plus long qui n'a pas besoin du SDK FB (basé sur une solution ici ):

public static void printHashKey(Context context) {
    try {
        final PackageInfo info = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES);
        for (android.content.pm.Signature signature : info.signatures) {
            final MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            final String hashKey = new String(Base64.encode(md.digest(), 0));
            Log.i("AppLog", "key:" + hashKey + "=");
        }
    } catch (Exception e) {
        Log.e("AppLog", "error:", e);
    }
}

Le résultat doit se terminer par "=".

développeur android
la source
1
J'ai remarqué que mon hachage de clé contient un '_' qui n'est pas autorisé par FB. Afin d'utiliser le hachage, j'ai dû le changer en «/».
Abdelalim Hassouna
La fonction Facebook a renvoyé ma clé car -AAAAAAAA_AAAAAA-AAAAAAAAAAcela n'est pas autorisé par Facebook, printHashKey a renvoyé la clé dans un format valide+AAAAAAAA/AAAAAA+AAAAAAAAAA=
GrafOrlov
@GrafOrlov Comme c'est étrange. Peut-être qu'ils ont un bogue sur une nouvelle version du SDK FB. Vous devriez leur en faire rapport.
développeur android
9

Pour les fenêtres:

  1. ouvrir l'invite de commande et coller sous la commande

keytool -exportcert -alias androiddebugkey -keystore% HOMEPATH% .android \ debug.keystore | openssl sha1 -binaire | openssl base64

  1. Entrez le mot de passe: Android -> Appuyez sur Entrée

  2. Copier la clé de hachage générée -> Connectez-vous à Facebook avec votre compte de développeur

  3. Accédez à votre application Facebook -> Paramètres -> Coller la clé de hachage dans l'option "hachages de clés" -> enregistrer les modifications.

  4. Maintenant, testez votre application Android avec Facebook Log-in / Share, etc.

swiftBoy
la source
J'ai généré le hachage de la clé mais je ne sais pas où mettre cette clé, pourriez-vous me guider? J'exécute Android Studio sur Ubuntu.
Apurva
Bonjour, je suis capable de générer une clé de hachage via un code dans mon activité principale, mais cette clé de hachage générée ne fonctionne que sur un seul appareil. Lorsque j'installe le même apk dans un autre appareil et que j'exécute une erreur de clé de hachage non valide. Y a-t-il quelque chose qui me manque.
Deepak
8

Depuis l'API 26, vous pouvez générer vos HASH KEYS en utilisant le code suivant dans KOTLIN sans avoir besoin du SDK Facebook.

fun generateSSHKey(context: Context){
    try {
        val info = context.packageManager.getPackageInfo(context.packageName, PackageManager.GET_SIGNATURES)
        for (signature in info.signatures) {
            val md = MessageDigest.getInstance("SHA")
            md.update(signature.toByteArray())
            val hashKey = String(Base64.getEncoder().encode(md.digest()))
            Log.i("AppLog", "key:$hashKey=")
        }
    } catch (e: Exception) {
        Log.e("AppLog", "error:", e)
    }

}

entrez la description de l'image ici

Hanny
la source
Vous voulez dire que je place votre code dans class MainActivity: FlutterActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) GeneratedPluginRegistrant.registerWith(this) } }
asdfasdf
6

C'est ainsi que j'ai obtenu mon:

private class SessionStatusCallback implements Session.StatusCallback {
        @Override
        public void call(Session session, SessionState state, Exception exception) {

            if (exception != null) {
                new AlertDialog.Builder(FriendActivity.this)
                        .setTitle(R.string.login_failed_dialog_title)
                        .setMessage(exception.getMessage())
                        .setPositiveButton(R.string.ok_button, null)
                        .show();
            }

Ainsi, lorsque vous essayez d'entrer sans la clé, une exception se produit. Facebook a mis la touche DROITE dans cette exception. Tout ce que vous avez à faire est de le copier.

Valikpon
la source
J'ai généré le hachage de la clé mais je ne sais pas où mettre cette clé, pourriez-vous me guider? J'exécute Android Studio sur Ubuntu.
Apurva
6

Si vous avez déjà téléchargé l'application sur Play Store, vous pouvez générer une clé de hachage comme suit:

1) Allez dans Release Management ici

2) Sélectionnez Gestion des versions -> Signature d'application

3) Vous pouvez voir la clé SHA1 au format hexadécimal du certificat de signature d'application.


4) Copiez le SHA1 au format hexadécimal et convertissez-le au format base64, vous pouvez utiliser ce lien pour le faire sans le SHA1: partie de l'hexagone.


5) Accédez à la console développeur Facebook et ajoutez la clé (après la conversion en base 64) dans les paramètres -> de base -> hachages de clé.

SumiSadiq
la source
5

Pour un lien de didacticiel vedio facile pour la génération de KeyHash ici

Téléchargez openssl ICI

Arpit Patel
la source
3

Téléchargez open ssl :

Ajoutez ensuite openssl \ bin aux variables système du chemin:

Mon ordinateur -> propriétés -> Configurations avancées -> Avancé -> Variables système -> sous les variables système, recherchez le chemin et ajoutez-le à ses fins:; yourFullOpenSSLDir \ bin

Maintenant, ouvrez une ligne de commande sur votre dossier jdk \ bin C: \ Program Files \ Java \ jdk1.8.0_40 \ bin (sous Windows, maintenez la touche Maj et cliquez avec le bouton droit -> ouvrez la ligne de commande ici) et utilisez:

keytool -exportcert -alias keystorealias -keystore C:\yourkeystore\folder\keystore.jks | openssl sha1 -binary | openssl base64

Et copiez le numéro de longueur 28 qu'il génère après avoir donné le mot de passe.

s'affaisse
la source
Je n'ai pas vu que la réponse originale a déjà le lien openssl. Mais c'est toujours utile pour la variable système.
sagits le
J'ai généré le hachage de la clé mais je ne sais pas où mettre cette clé, pourriez-vous me guider? J'exécute Android Studio sur Ubuntu.
Apurva
Bien sûr, êtes-vous sûr d'avoir généré le nombre de 28 longueurs? Si tel est le cas, vous devez maintenant vous rendre sur le site des développeurs Facebook (recherche sur google) et créer une nouvelle application, sous paramètres, vous pouvez ajouter une nouvelle application Android, vous y collez votre keyhash et votre nom d'activité (où se trouve le code de connexion ). Il y a aussi un tutoriel à ce sujet sur Facebook
sagits
Merci pour la réponse rapide, je vais l'essayer sous peu
Apurva
3

Exécutez soit ceci dans votre application:

FacebookSdk.sdkInitialize(getApplicationContext());
Log.d("AppLog", "key:" + FacebookSdk.getApplicationSignature(this)+"=");

Ou ca:

public static void printHashKey(Context context) {
    try {
        final PackageInfo info = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES);
        for (android.content.pm.Signature signature : info.signatures) {
            final MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            final String hashKey = new String(Base64.encode(md.digest(), 0));
            Log.i("AppLog", "key:" + hashKey + "=");
        }
    } catch (Exception e) {
        Log.e("AppLog", "error:", e);
    }
}

Et puis regardez les journaux.

Le résultat doit se terminer par "=".

La solution est basée sur ici et ici .

développeur android
la source
3

FACILE -> N'installez pas openssl -> UTILISEZ GIT BASH!

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

Le mot de passe par défaut est "android"

La plupart d'entre nous ont installé Git Bash, c'est donc ma méthode préférée.

Dmitri R117
la source
3

cela aidera également les nouveaux abeilles.

juste en ajoutant plus de détails à la réponse de @ coder_For_Life22.

si cette réponse vous aide, n'oubliez pas de voter. cela nous motive.

pour cela, vous devez déjà connaître le chemin du fichier de keystore et le mot

de passe de l'application. Pour cet exemple, considérez que la clé est stockée dans "c: \ keystorekey \ new.jks"

1. ouvrez cette page https://code.google.com/archive / p / openssl-for-windows / downloads

2. téléchargez un fichier zip 32 ou 64 bits selon votre système d'exploitation Windows.

3. extrayez le fichier téléchargé où vous le souhaitez et mémorisez le chemin.

4. pour cet exemple, nous considérons que vous avez extrait le dossier dans le dossier de téléchargement. 5. maintenant sur le clavier, appuyez sur le bouton Windows + r. 6. cela ouvrira la boîte de course.

donc l'adresse du fichier sera "C: \ Users \ 0 \ Downloads \ openssl-0.9.8e_X64 \ bin \ openssl.exe";





7. tapez cmd et appuyez sur Ctrl + Maj + Entrée .

8. cela ouvrira l'invite de commande en tant qu'administrateur.

9. ici, accédez au dossier bin de java:

si vous utilisez jre fourni par Android Studio, vous trouverez le chemin d'accès comme suit:
a. ouvrez le studio Android.
b. fichier-> structure du projet
c. dans le volet gauche, cliquez sur «Emplacement du SDK»
d. dans le volet de droite, sous «JDK location» se trouve votre chemin jre.
e. ajoutez "\ bin" à la fin de ce chemin car le fichier "keytool.exe", dont nous avons besoin, se trouve dans ce dossier.
pour cet exemple je considère,
"C: \ Program Files \ Java \ jre-10.0.2 \ bin"
si vous avez installé java 32 bits, il sera dans
"C: \ Program Files (x86) \ Java \ jre-10.0.2 \ bin"
10. Maintenant, avec les chemins ci-dessus, exécutez la commande comme suit:

keytool -exportcert -alias androiddebugkey -keystore "c:\keystorekey\new.jks" | "C:\Users\0\Downloads\openssl-0.9.8e_X64\bin\openssl.exe" sha1 -binary |"C:\Users\0\Downloads\openssl-0.9.8e_X64\bin\openssl.exe" base64
  1. Il vous sera demandé un mot de passe, donnez le mot de passe que vous avez donné lors de la création de la clé du keystore.

    !!!!!! cela vous donnera la clé

erreurs: si vous obtenez:
---
'keytool' n'est pas reconnu comme une commande interne ou externe
---
cela signifie que java est installé ailleurs.

sifr_dot_in
la source
3

étape 1-> C: \ Program Files \ Java \ jdk1.6.0_43 \ bin>

Étape 2-> keytool -list -v -keystore C: \ Users \ leon \ .android \ debug.keystore -alias androiddebugkey -storepass android -keypass android

vous avez la valeur SHA1 cliquez sur ce lien u convertissez votre valeur SHA1 en clé de hachage

Je suis sûr à 100% que ce lien vous aidera

naveen pandi
la source
3

Moyen facile

En utilisant ce site Web, vous pouvez obtenir une clé de hachage en convertissant la clé SHA1 en clé de hachage pour Facebook.

Sai Gopi N
la source
2

Vous pouvez obtenir toutes vos empreintes digitales sur https://console.developers.google.com/projectselector/apis/credentials
Et utiliser ce code Kotlin pour le convertir en keyhash:

fun main(args: Array<String>) {
    listOf("<your_production_sha1_fingerprint>",
            "<your_debug1_sha1_fingerprint>",
            "<your_debug2_sha1_fingerprint>")
            .map { it.split(":") }
            .map { it.map { it.toInt(16).toByte() }.toByteArray() }
            .map { String(Base64.getEncoder().encode(it)) }
            .forEach { println(it) }
}
Alexmelyon
la source
1

https://developers.facebook.com/docs/android/getting-started/

4.19.0 - 25 janvier 2017

SDK Facebook

Modifié

Le SDK Facebook est maintenant initialisé automatiquement au démarrage de l'application. Dans la plupart des cas, un appel manuel à FacebookSDK.sdkInitialize () n'est plus nécessaire. Consultez le guide de mise à niveau pour plus de détails.

Pour le débogage

try {
    PackageInfo info = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES);
    for (Signature signature : info.signatures) {
        MessageDigest md = MessageDigest.getInstance("SHA");
        md.update(signature.toByteArray());
        Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
    }
} catch (NoSuchAlgorithmException e) {
    e.printStackTrace();
} catch (Exception e) {
    e.printStackTrace();
}
Ketan Ramani
la source
1

Exécutez simplement ce code dans votre OnCreateView ou OnStart Actvity et cette fonction vous renvoie le hachage de clé de développement .

private String generateKeyHash() {
    try {
        PackageInfo info = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = (MessageDigest.getInstance("SHA"));
            md.update(signature.toByteArray());
            return new String(Base64.encode(md.digest(), 0));
        }
    }catch (Exception e) {
        Log.e("exception", e.toString());
    }
    return "key hash not found";
}
Hasib Akter
la source
0

J'avais exactement le même problème, on ne me demandait pas de mot de passe et il semble que j'avais le mauvais chemin pour le fichier keystore.

En fait, si le keytool ne trouve pas le keystore que vous avez défini, il en créera un et vous donnera la mauvaise clé car il n'utilise pas la bonne.

La règle générale est que si on ne vous demande pas de mot de passe, vous avez la mauvaise clé générée.

Nick Tsitlakidis
la source
J'ai généré le hachage de la clé mais je ne sais pas où mettre cette clé, pourriez-vous me guider? J'exécute Android Studio sur Ubuntu.
Apurva
0

Vous pouvez utiliser cet apk

1.first install the app from the Google play store
2.install the above apk
3.launch the apk and input the package name of your app
4.then you will get the hash code you want
armnotstrong
la source
@Elynad It's Chinese: D
armnotstrong
0

keytool -exportcert -alias androiddebugkey -keystore "C: \ Users ** Deepak **. android \ debug.keystore" | " C: \ Users \ Deepak \ ssl \ bin \ openssl" sha1 -binary | " C: \ Users \ Deepak \ ssl \ bin \ openssl" base64

2 Modifications dans cette commande ci-dessus 1.Deepak === Remplacez par votre système USERNAME 2.C: \ Users \ Deepak \ ssl === remplacez votre chemin Open SSL

exécutez cette commande et obtenez une sortie comme celle-ci

C: \ Users \ Deepak> keytool -exportcert -alias androiddebugkey -keystore "C: \ Users \ D eepak.android \ debug.keystore" | "C: \ Users \ Deepak \ ssl \ bin \ openssl" sha1 -binary | "C: \ Users \ Deepak \ ssl \ bin \ openssl" base64 Entrez le mot de passe du fichier de clés: ****** ga0RGNY ****************** =

Deepak Parmar
la source