Facebook Android Générer Hachage Clé

en essayant de créer une application android avec intégration Facebook, Je suis arrivé à la partie dans les documents où vous devez générer un fichier de hachage de clés, il spécifie d'exécuter le code suivant

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

quand j'exécute ceci dans mon terminal j'obtiens une erreur pour Keystore trafiqué ou mot de passe était incorrect,

je veux juste générer ma Clé de Hachage

quelqu'un peut-il m'indiquer la bonne direction?

113
demandé sur Janusz 2011-03-15 02:51:23

20 réponses

Supprimer votre certificat de débogage sous ~/.android / debug.keystore (sur Linux et Mac OS X); le répertoire est quelque chose comme %USERHOME%/.android sur Windows.

le plugin Eclipse devrait alors générer un nouveau certificat lorsque vous essayez de construire un paquet de débogage.

dites-moi si ça marche.

20
répondu allthenutsandbolts 2011-03-15 00:02:12

pour générer un hash clé, vous devez suivre quelques étapes faciles.

1) Téléchargez Openssl à partir de: ici.

2) Créer un dossier openssl dans c drive

3) extraire des fichiers Zip dans ce dossier openssl créé dans C Drive.

4) copier le fichier déboguer.fichier de clés à partir de .dossier android dans mon cas (C:\Users\SYSTEM.android) et coller dans le dossier bin JDK dans mon cas (C:\Program fichiers\Java\jdk1.6.0_05 \ bin)

5) Ouvrez l'invite de commande et donner le chemin du JDK dossier Bin dans mon cas (C:\Program Files\Java\jdk1.6.0_05\bin).

6) Copiez le code suivant et appuyez sur

keytool-exportcert-alias androiddebugkey -keystore de débogage.keystore > c:\openssl\bin\debug.txt

7) Maintenant vous devez entrer le mot de passe , mot de passe = android.

8) Si vous voyez dans openssl Bin, vous obtiendrez un fichier avec le nom de debug.txt

9) Maintenant soit vous pouvez redémarrer l'invite de commande ou travailler avec l'invite de commande existante

10) revenir à C le lecteur et donnent le chemin d'accès à openssl Bin dossier

11) copier le code et coller

openssl sha1-debug binaire.txt > debug_sha.txt

12) Vous obtiendrez debug_sha.txt dans openssl bin

13) copier de nouveau le code suivant et coller

openssl en base64 dans debug_sha.txt > debug_base64.txt

14) Vous obtiendrez debug_base64.txt dans openssl bin

15) ouvrir debug_base64.txt fichier Voici votre clé de hachage.

276
répondu Vijay Arora 2013-08-28 06:21:35

mise à JOUR de la RÉPONSE (Génération de code) méthode plus Simple :

d'après mon expérience, openssl étant toujours gênant, j'ai essayé la deuxième méthode suggérée par facebook. Et c'est merveilleux. C'est la meilleure méthode pour obtenir la clé de hachage.

deuxième option est d'imprimer le hash clé envoyé à Facebook et d'utiliser cette valeur. Apportez les changements suivants à la méthode onCreate () dans votre activité principale:

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        try {
            PackageInfo info = getPackageManager().getPackageInfo(
                    "com.facebook.samples.loginhowto", 
                    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 (NameNotFoundException e) {

        } catch (NoSuchAlgorithmException e) {

        }
        ...other operations

}//end of onCreate

remplacer com.Facebook.échantillon.loginhowto avec votre propre nom de paquet (nom de paquet dans le Manifeste.XML.)

lien officiel - https://developers.facebook.com/docs/android/login-with-facebook / (voir le bas de la page)

VIEILLE RÉPONSE (Génération Keyhash utilisant openssl )

  1. pour générer une signature, vous devez installer openssl sur votre PC. Si vous n'avez pas un TÉLÉCHARGER openssl d'ici
  2. en C: , créer openssl dossier
  3. extraire le contenu du fichier zip OpenSSL téléchargé dans le dossier openssl dans le dossier C: drive
  4. ouvrez l'invite de Commande
  5. passer à bin de openssl I. e C:\openssl\bin in command prompt
  6. exécutez la commande suivante pour générez votre keyhash. En générant hashkey il devrait vous demander le mot de passe.

    keytool-exportcert-alias androiddebugkey-keystore "C:\Users\Anhsirk.android\debug.keystore" / openssl sha1-binaire / openssl base64

NOTE : dans le code ci-dessus noter que , vous devez donner votre chemin vers l'utilisateur (I. e dans mon cas, c'est C:\Users\Anhsirk , vous avez juste besoin de changer cela pour votre compte d'utilisateur.

donner mot de passe comme android

. S'il ne demande pas de mot de passe, votre chemin de keystore est incorrect.

si tout fonctionne bien, il devrait vous donner le hashkey ci-dessous.

enter image description here

146
répondu AnhSirk Dasarp 2013-10-21 10:34:58

la clé de droite peut être obtenue à partir de l'application elle-même en ajoutant le code suivant pour toaster la clé de hachage appropriée (dans le cas de Facebook SDK 3.0 à partir de, cela fonctionne)

try {
            PackageInfo info = getPackageManager().getPackageInfo("com.package.mypackage",         PackageManager.GET_SIGNATURES);
            for (Signature signature : info.signatures) {
                MessageDigest md = MessageDigest.getInstance("SHA");
                md.update(signature.toByteArray());
                String sign=Base64.encodeToString(md.digest(), Base64.DEFAULT);
                Log.e("MY KEY HASH:", sign);
                Toast.makeText(getApplicationContext(),sign,         Toast.LENGTH_LONG).show();
            }
} catch (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}

remplacer com.paquet.mypackage avec votre nom de paquet

14
répondu tigerden 2013-08-12 13:25:05

I. création de débogage de hachage clé pour facebook

ajouter le code pour imprimer le hachage de la clé pour facebook

    try {
        PackageInfo info = getPackageManager().getPackageInfo(
                "com.google.shoppingvn", PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            Log.i("KeyHash:",
                    Base64.encodeToString(md.digest(), Base64.DEFAULT));
        }
    } catch (NameNotFoundException e) {

    } catch (NoSuchAlgorithmException e) {

    }

II. Créer la clé de libération de hachage pour facebook

  1. Download openssl-0.9.8e_X64
  2. Faire une openssl dossier dans le lecteur C
  3. extraire des fichiers Zip dans le dossier openssl
  4. Démarrer -> Exécuter: cmd (appuyez sur entrée)
  5. (presse) cd C:\Program fichiers\Java\jdk1.6.0_45\bin. Note: C:\Program fichiers\Java\jdk1.6.0_45\bin: est le chemin vers le dossier jdk dans votre ordinateur
  6. (presse) keytool -exportcert -alias dcg -keystore D:\folder\keystorerelease | C:\openssl\bin\openssl sha1 -binaire | C:\openssl\bin\openssl base64. Note: D:\folder\keystorerelease: est le chemin d'accès à votre keystorerelease

  7. entrez le mot de passe de keystore: c'est le mot de passe lorsque votre keystorerelease registre.

    alors vous aurez un hachage clé: jDehABCDIQEDWAYz5Ow4sjsxLSw=

  8. Login facebook. Accès pour Gérer des Applications. Coller le hachage de la clé à votre application sur developers.facebook.com

12
répondu Anh Duy 2015-08-07 19:07:42

LA SOLUTION LA PLUS SIMPLE POUR CE PROBLÈME:

j'ai ce problème depuis deux mois maintenant. Mes clés se sont enflammées jusqu'à 9. Aujourd'hui j'ai enfin trouvé la solution simple:

étape 1:

installez le sdk facebook que vous avez téléchargé à partir de la page du développeur facebook sur votre téléphone. N'installez pas l'application facebook normale. Assurez-vous que vous pouvez vous connecter à facebook. Puis déconnecter.

étape 2:

exportez votre application avec votre clé de version finale en tant qu'apk, comme vous le feriez lors du téléchargement vers la playstore.

étape 3:

mettez le fichier Apk sur votre téléphone via un câble usb ou une clé usb.

étape 4:

installez votre application, en utilisant un gestionnaire de fichiers: Exemple

étape 5:

lancez votre application et essayez de vous connecter avec facebook. Un dialogue s'ouvrira et vous dira: "la clé YOURHASHKEY n'a pas été trouvée dans la console de développeur facebook"

étape 6:

note la clé.

étape 7:

mettez-le dans votre facebook console de développement et enregistrer. Maintenant que vous avez terminé. Toute personne qui télécharge votre application, publié avec plus tôt keystore utilisé peut se connecter à facebook.

Profiter

8
répondu Sakramento 2015-08-07 18:02:59

si vous libérez, utilisez le keystore que vous avez utilisé pour exporter votre application avec et non le débogueur.fichier de stockage des clés.

7
répondu trgraglia 2012-04-20 07:39:54

le mot de passe du certificat de débogage est android et non Android

6
répondu Fernando Gallego 2011-11-12 17:41:23

enfin:)

Voici mon histoire:

  1. ajoutez ce code à votre activité principale, après la mise en page.

    try { 
      PackageInfo info = getPackageManager().getPackageInfo("PROJECTNAME", PackageManager.GET_SIGNATURES);
      for (Signature signature : info.signatures) {
          MessageDigest md = MessageDigest.getInstance("SHA");
          md.update(signature.toByteArray());
          String sign=Base64.encodeToString(md.digest(), Base64.DEFAULT);
          Log.e("MY KEY HASH:", sign);
          //textInstructionsOrLink = (TextView)findViewById(R.id.textstring);
          //textInstructionsOrLink.setText(sign);
          Toast.makeText(getApplicationContext(),sign, Toast.LENGTH_LONG).show();
      }
    } catch (NameNotFoundException e) {
        Log.d("nope","nope");
    } catch (NoSuchAlgorithmException e) {
    }
    
  2. changez le nom de votre paquet!

  3. Signer votre application (Android Outils->Exporter de Demande Signé)
  4. dans votre activité principale où vous collez le code à partir de l'option 2, dans votre mise en page Créer TextView avec ID textstring
  5. décommentez les deux lignes, que votre signe code devrait être fixé à TextView 6 Wuolia, vous avez votre HASH , installez l'application sur votre téléphone!!! et vérifiez votre clé de hachage!
  6. maintenant , quand il est visible, allez à l'application facebook que vous avez créé et ajoutez-le à [touches de hachage]
  7. notez que le nom de votre paquet doit être le même que sur facebook [Nom du paquet] sous [touches Hashes]
  8. Have a nice day :)
6
répondu Vasilij 2017-07-30 03:34:58

une solution de ligne à générer pour facebook

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
5
répondu Anudeep Samaiya 2016-11-03 13:33:15

pour générer le hachage des clés de publication, vous devez suivre quelques étapes faciles.

1) Télécharger Openssl

2) Créer un dossier openssl dans le lecteur C

3) extraire des fichiers Zip dans ce dossier openssl créé dans le lecteur C.

4) Copiez le fichier de débogage.fichier de stockage des clés .dossier android dans mon cas (C:\Users\SYSTEM.android) et coller dans le dossier bin JDK dans mon cas (C:\Program Fichiers\Java\jdk1.6.0_05 \ bin)

5) ouvrir l'invite de commande et donner le chemin du dossier Bin JDK dans mon cas (C:\Program fichiers\Java\jdk1.7.0_40\bin).

6) Copiez le code suivant et appuyez sur

keytool-exportcert-alias abcd-keystore D:\Projects\MyAppFolder\keystore.txt | C:\openssl\bin\openssl sha1-binaire | C:\openssl\bin\openssl base64 ex-keytool-exportcert-alias (votre nom d'alias sing apk entrez ici comme ma signature apk alian nom est abcd )-keystore "signé apk généré keystore apth entrez ici" | "openssl bin chemin d'accès au dossier entrez ici" sha1 - binaire | "openssl bin chemin d'accès au dossier entrez ici" base64

7) Maintenant vous devez entrer mot de passe, Mot de passe = (entrez votre mot de passe de keystore de signe ici)

8) Vous avez keystore qui sont utilisés pour le hachage de la clé app release

4
répondu Vijay Rajput 2015-08-07 17:33:18

bien que ce fil soit ancien, je voudrais partager mon expérience (récemment commencé à travailler avec facebook), qui me semble droite:

  1. télécharger openssl à partir du lien ci-dessous: https://code.google.com/p/openssl-for-windows/downloads/list
  2. décompresser sur un lecteur local (par exemple, C:\openssl)
  3. pour obtenir la clé de développement pour l'intégration facebook, utilisez la commande suivante de la ligne de commande dans windows:

    keytool-exportcert-alias androiddebugkey-keystore %HOMEPATH%.android\debug.keystore | "C:\openssl\bin\openssl.exe "sha1-binaire |" C:\openssl\bin\openssl.exe "base64

    151960920"

NOTE!: veuillez remplacer le chemin pour openssl.exe (dans cet exemple, il est "C:\openssl\bin\openssl.exe") avec votre propre chemin d'installation.

  1. Il va demander le mot de passe, par exemple,

Enter keystore mot de passe: android

Tapez android comme mot de passe comme indiqué ci-dessus.

That's it! Vous recevrez une clé de 28 caractères. Acclamations!

utilisez la même procédure pour obtenir la clé de libération. Il suffit de remplacer la commande par la suivante et d'utiliser l'alias de la clé de publication.

keytool - exportcert-alias YOUR_RELEASE_KEY_ALIAS-keystore YOUR_RELEASE_KEY_PATH / " PATH FOR openssl.exe "sha1-binaire / openssl base64

3
répondu Mahbubul Syeed 2015-08-25 18:28:48

grand billet de blog sur le sujet

extraire le hachage de la clé .P12 clé

  1. ouvrez le Terminal ou la ligne de commande et naviguez jusqu'à votre .p12.
  2. Type: "keytool -v -list -keystore mycert.p12 -storetype pkcs12" où mycert.p12 est le nom de fichier de votre .clé p12.
  3. entrez le mot de passe keystore (celui que vous avez utilisé lors de l'exportation .p12-clés). 4 . Copie empreinte sha1 signature octets texte.
  4. les octets à la signature d'empreinte SHA1 sont nécessaires pour écrire le" sha1.bin fichier". Vous pouvez utiliser un éditeur hexadécimal pour coller les octets que vous avez copié. Ensuite, sauvegardez le fichier sous "sha1.bac."
  5. ouvrir le terminal à nouveau et taper: "openssl base64-in sha1.bin-out base64.txt".
  6. La "base64.txt " contiendra le Hash clé qui est nécessaire pour Facebook.

grand et simple éditeur hexadécimal Pour mac: HexFiend

OpenSSL doit être préinstallé sur mac, et voici le lien pour la version de Windows.

Lien

2
répondu Thyselius 2015-08-07 17:53:30

essayer de passer le mot de passe pour la clé et stocker dans le cadre de la commande

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore -keypass android -storepass android \
| openssl sha1 -binary \
| openssl base64
2
répondu Sam Stern 2016-08-10 20:16:45

j'ai été capable de faire la tâche demandée avec certaines des solutions ici, mais pensé à moi-même, garçon qui est stupide... pourquoi ne pas écrire un petit code Java qui fait ça et l'emballer dans un bocal, alors je l'ai fait...

A lien pour télécharger le pot

fonctionne sur Windows 8... ne pas essayer de tout autre OS.

1
répondu TacB0sS 2015-08-07 17:53:46

Salut tout le monde c'est mon histoire comment je me fais inscrire a la clé pour facebook

tout d'abord, vous avez juste à copier ces 2 méthodes dans votre première classe

    private void getAppKeyHash() {
    try {
        PackageInfo info = getPackageManager().getPackageInfo(
                getPackageName(), 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));
            System.out.println("HASH  " + something);
            showSignedHashKey(something);

        }
    } catch (NameNotFoundException e1) {
        // TODO Auto-generated catch block
        Log.e("name not found", e1.toString());
    } catch (NoSuchAlgorithmException e) {

        Log.e("no such an algorithm", e.toString());
    } catch (Exception e) {
        Log.e("exception", e.toString());
    }
}
public void showSignedHashKey(String hashKey) {

    AlertDialog.Builder adb = new AlertDialog.Builder(this);
    adb.setTitle("Note Signed Hash Key");
    adb.setMessage(hashKey);
    adb.setPositiveButton("OK", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {

        }
    });

    adb.show();
}

**Appel funcation getAppKeyHash() de votre oncreate methode si vous voulez signé de hachage puis faire signé construire installer signé construire et exécuter, vous obtiendrez de hachage de la clé dans la boîte de dialogue puis juste note le mettre à jour sur facebook dev compte et de le commenter que de la fonction et de faire un autre signé APK **

1
répondu Prashant Maheshwari Andro 2015-11-05 12:22:45

si votre mot de passe=android est erroné, alors mettez votre mot de passe pc sur que cela fonctionne pour moi.

et pour générer keyHash essayer ce lien ici

1
répondu Arpit Patel 2016-02-16 04:25:13

Générer de Débogage clé de hachage

  public String hashkey(Context context) {
        String keyhash = "";
        try {
            PackageInfo info = context.getPackageManager().getPackageInfo(context.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));
                keyhash = Base64.encodeToString(md.digest(), Base64.DEFAULT);
            }
        } catch (PackageManager.NameNotFoundException e) {

        } catch (NoSuchAlgorithmException e) {

        }
        return keyhash;
    }

Générer de la Libération de clé de hachage

 keytool -exportcert -alias specialbridge -keystore /home/shilpi/newproject/specialBridge/SpecialBridgeAndroid/keystore/specialbridge.jks | openssl sha1 -binary | openssl base64
1
répondu Ashutosh Srivastava 2018-01-11 11:15:09

la seule chose qui fonctionne pour moi est d'utiliser le mot de passe android . Pourquoi n'est-ce pas mentionné dans les guides?

0
répondu Remi Sture 2017-08-13 09:13:47

utilisez ceci en kotlin pour imprimer hachage clé dans le log

try {
        val info = context.getPackageManager().getPackageInfo(context.packageName,
                PackageManager.GET_SIGNATURES);
        for (signature in info.signatures) {
            val md = MessageDigest.getInstance("SHA")
            md.update(signature.toByteArray())
            Log.d("Key hash ", android.util.Base64.encodeToString(md.digest(), android.util.Base64.DEFAULT))
        }
    }catch (e:Exception){

    }
0
répondu Prashant Jajal 2018-01-19 10:41:08