Question

Essayer de créer une application Android avec l'intégration de Facebook, je l'ai appris à la partie dans la documentation où vous devez générer un fichier de hachage de clé, il précise pour exécuter le code suivant

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

Quand je lance cela dans mon terminal je reçois une erreur pour Keystore falsifié ou mot de passe incorrect,

Je veux juste générer mon Dièse

point Quelqu'un peut-moi dans la bonne direction?

Était-ce utile?

La solution

Supprimer votre certificat de débogage sous ~ / .android / debug.keystore (sous 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 ensuite de construire un package de débogage.

Faites-moi savoir si cela fonctionne.

Autres conseils

Pour générer la clé de hachage, vous devez suivre quelques étapes faciles.

1) Télécharger OpenSSL:.

2) Faire un openssl dossier C entraînement

3) Extrait Zip fichiers dans ce OpenSSL dossier créé C Drive.

4) Copiez le fichier debug.keystore .android dossier dans mon cas (C: \ Users \ SYSTEM.android) et collez-le dans le dossier bin dans JDK mon cas (C: \ Program Files \ Java \ jdk1.6.0_05 \ bin)

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

6) Copiez le code suivant et appuyez sur Entrée

keytool -exportcert -alias androiddebugkey -keystore debug.keystore> c: \ OpenSSL \ bin \ debug.txt

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

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

9) Maintenant, soit vous pouvez redémarrer invite de commande ou de travail avec la commande existante invite

10) revenir à lecteur C et donner le chemin de OpenSSL Bin dossier

11) copier le code suivant et coller

OpenSSL SHA1 -binary debug.txt> debug_sha.txt

12) vous obtiendrez debug_sha.txt dans le dossier bin OpenSSL

13) copier à nouveau code suivant et coller

openssl base64 -in debug_sha.txt> debug_base64.txt

14) vous obtiendrez debug_base64.txt dans le dossier bin OpenSSL

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

RÉPONSE À JOUR (Génération par code) méthode plus simple:

Dans mon expérience, OpenSSL toujours être gênant, j'ai essayé la deuxième méthode proposée par facebook. Et il est merveilleux. Ceci est la meilleure méthode pour obtenir la clé de hachage.

Deuxième option est d'imprimer le hachage de clé envoyé à Facebook et d'utiliser cette valeur. Effectuez les modifications suivantes à 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

Remplacez com.facebook.samples.loginhowto avec votre propre nom de package (nom du package dans Manifest.xml).

lien officiel - https://developers.facebook.com/docs/ Android / connexion-with-facebook / (voir en bas de la page)

REPONSE OLD (Génération Keyhash utilisant openssl)

  1. pour générer la signature dont vous avez besoin OpenSSL installé sur votre PC. Si vous ne disposez pas d'un seul téléchargement OpenSSL d'ici
  2. Dans C:, Créer un dossier openssl
  3. extraire le contenu du fichier zip téléchargé OpenSSL dans le dossier openssl dans C:drive
  4. Commande d'ouverture rapide
  5. passer à bin de openssl i.e. C:\openssl\bin dans invite de commande
  6. exécutez la commande suivante pour générer votre keyhash. Lors de la génération hashkey il devrait vous demander le mot de passe.

    keytool -exportcert -alias androiddebugkey -keystore "C: \ Users \ Anhsirk.android \ debug.keystore" | OpenSSL SHA1 -binary | OpenSSL base64

NOTE : dans la note de code ci-dessus, vous devez donner votre chemin à l'utilisateur (dans mon cas, il est C: \ Users \ Anhsirk, vous venez besoin de changer cela pour votre compte utilisateur.

Donner mot de passe Android

. Si elle ne demande pas de mot de passe de votre chemin keystore est incorrect.

Si tout fonctionne bien, il devrait vous donner l'hashkey ci-dessous.

entrer image description ici

La clé de droite peut être obtenue à partir de l'application elle-même en ajoutant le code suivant pour porter un toast le hachage clé appropriée (dans le cas de Facebook SDK 3.0 partir, 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) {
}

Remplacez com.package.mypackage avec votre nom de package

I. Créer clé débogage de hachage pour facebook

Ajoutez du code pour imprimer le hachage 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 version clé de hachage pour facebook

  1. Télécharger OpenSSL-0.9.8e_X64
  2. un dossier OpenSSL dans le lecteur C
  3. Zip extrait les fichiers dans le dossier OpenSSL
  4. Démarrer -> Exécuter: cmd (appuyez sur Entrée)
  5. (presse) cd C: \ Program Files \ Java \ jdk1.6.0_45 \ bin. Note: C: \ Program Files \ Java \ jdk1.6.0_45 \ bin: est le chemin vers le dossier jdk dans votre ordinateur
  6. (presse) keytool -exportcert -alias -keystore GCI D: \ dossier \ keystorerelease | C: \ OpenSSL \ bin \ OpenSSL SHA1 -binary | C: \ OpenSSL \ bin \ openssl base64. Note: D: \ dossier \ keystorerelease: est le chemin à votre keystorerelease

  7. Entrez le mot de passe keystore. Ce mot de passe est lorsque votre keystorerelease de registre

    Ensuite, vous aurez un hachage clé: jDehABCDIQEDWAYz5Ow4sjsxLSw =

  8. Connexion facebook. L'accès à Gérer les applications. Coller hachage clé de votre application sur developers.facebook.com

Simplest façon de générer la clé de hachage.

Exigence: SHA1 clés

Vous pouvez trouver SHA1 Key en exécutant signingReport

Reportez-vous ci-dessous l'image.

 entrer image description ici

après avoir exécuté le fichier de votre sortie sera généré contenant la clé de SHA1 nécessaire.

 entrer image description ici

Alors goto http://tomeko.net/online_tools/hex_to_base64.php

et collez votre clé SHA1

 entrer image description ici

et enfin vous obtiendrez requis HashKey.

SOLUTION SIMPLES LÀ POUR CE PROBLÈME:

J'ai eu ce problème depuis deux mois. Mes clés hash ont été pyling jusqu'à 9. Aujourd'hui, j'ai finalement trouvé la solution simple:

ETAPE 1:

Installer le sdk facebook vous avez téléchargé depuis la page des développeurs de facebook sur votre téléphone. Prévoir l'installation de l'application normale facebook. Assurez-vous que vous pouvez vous connecter à facebook. Puis fermer la session.

ETAPE 2:

Exporter votre application avec votre clé de la version finale en tant apk, comme vous le feriez lors du téléchargement à la Playstore.

ETAPE 3:

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

ÉTAPE 4:

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

ETAPE 5:

Lancez votre application et essayez de vous connecter avec facebook. Une boîte de dialogue ouvert et vous dire: « la YOURHASHKEY clé n'a pas été trouvée dans la console développeur facebook »

ETAPE 6:

Notez la clé.

STEP 7:

Mettez dans votre console développeur facebook et enregistrer. Maintenant, vous avez terminé. Toute personne qui télécharge votre application, publié avec keystore utilisé précédemment peuvent se connecter à facebook.

Profitez

Si vous publiez, utilisez le keystore que vous avez utilisé pour exporter votre application avec et non le debug.keystore.

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

Enfin:)

Voici mon histoire:

  1. Ajoutez ce code à votre activité principale, après avoir défini 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. Modifier PROJECTNAME à votre nom de package!

  3. Signez votre application (Android Outils-> Exporter Signed Application)
  4. Dans votre activité principale où vous collez le code de 2 options, dans votre mise en page créer TextView avec id textstring
  5. deux lignes décommentez, que votre code gestuel seraient mis à TextView 6 Wuolia, vous avez votre HASH, installez l'application sur votre téléphone !!! et vérifiez votre Dièse!
  6. Maintenant, quand il est visible, allez à l'application facebook créé et ajoutez-le à [Hashes Key]
  7. Notez que le nom de votre paquet devrait être le même que sur facebook [Nom du paquet] sous [Key Hashes]
  8. Avoir une belle journée:)

solution d'une ligne à générer pour facebook

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

Même si ce fil est vieux, mais je voudrais vous faire part de mon expérience (récemment commencé à travailler avec facebook), qui me semble tout droit:

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

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

NOTE !: s'il vous plaît remplacer le chemin openssl.exe (dans cet exemple, il est "C: \ OpenSSL \ bin \ openssl.exe".) Avec votre propre chemin d'installation

  1. Il vous demandera le mot de passe, par exemple.

Entrez le mot de passe keystore: Android

Type Android comme mot de passe comme indiqué ci-dessus.

Thats it! Vous recevrez une clé longue de 28 caractères. Vive!

Utilisez la même procédure pour obtenir la clé de sortie. Il suffit de remplacer la commande par ce qui suit et utilisez votre version alias touche.

keytool -exportcert -alias YOUR_RELEASE_KEY_ALIAS -keystore YOUR_RELEASE_KEY_PATH | "CHEMIN POUR openssl.exe" SHA1 -binary | openssl base64

Générer 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 la clé de hachage de presse

 keytool -exportcert -alias specialbridge -keystore /home/shilpi/newproject/specialBridge/SpecialBridgeAndroid/keystore/specialbridge.jks | openssl sha1 -binary | openssl base64

Grand billet de blog sur le sujet

Extraire le Dièse de p12 touche

  1. Ligne Ouvrez Terminal ou commande et accédez à l'endroit où votre clé p12 est.
  2. Tapez:. « Keytool -list -v -keystore mycert.p12 -storetype pkcs12" où mycert.p12 est le nom de votre clé .p12
  3. Entrez le mot de passe keystore (celui que vous avez utilisé lors de l'exportation p12 clé). 4. Copier la signature d'empreintes digitales SHA1 octets texte.
  4. Les octets à la signature d'empreintes digitales SHA1 sont nécessaires pour écrire le fichier « sha1.bin ». Vous pouvez utiliser un éditeur hexadécimal pour coller les octets copiés. Ensuite, enregistrez le fichier en tant que « sha1.bin ».
  5. Ouvrez le terminal nouveau et tapez:. « Openssl base64 -in sha1.bin base64.txt -out »
  6. Le résultat « base64.txt » contiendra la clé Hash qui est nécessaire pour Facebook.

Grande et simple éditeur hexadécimal pour Mac: HexFiend

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

Lien

Essayez 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

j'ai pu faire exécuter la tâche demandée avec quelques-unes des solutions ici, mais me suis dit, mon garçon qui est stupide ... pourquoi ne pas écrire un petit code Java qui le fait cela et emballer dans un pot, donc Je l'ai fait ...

lien pour télécharger Jar

Travaux sur Windows 8 ... n'a pas essayé de tout autre système d'exploitation.

Salut tout le monde est mon histoire comment je faire signer a clé pour facebook

D'abord vous avez tous suffit de copier ce 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é hash puis faire signer build installer construire signé et exécution, vous obtenez la clé de hachage dans le dialogue puis juste noter et mettre à jour sur facebook compte dev et commenter cette fonction et faire un autre APK signé **

Si votre mot de passe = android est mal puis mettez votre mot de passe pc sur que cela fonctionne pour moi.

Et pour générer keyHash essayer ce lien

La seule chose à travailler pour moi utilise le mot de passe android. Pourquoi est-ce pas mentionné dans les guides là-bas?

utiliser dans Kotlin pour hachage clé d'impression dans le journal

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){

    }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top