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?
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.
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.
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 )
- 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
- en C: , créer
openssl
dossier - extraire le contenu du fichier zip OpenSSL téléchargé dans le dossier
openssl
dans le dossierC:
drive - ouvrez l'invite de Commande
- passer à
bin
deopenssl
I. eC:\openssl\bin
in command prompt -
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.
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
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
- Download openssl-0.9.8e_X64
- Faire une openssl dossier dans le lecteur C
- extraire des fichiers Zip dans le dossier openssl
- Démarrer -> Exécuter: cmd (appuyez sur entrée)
- (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
-
(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
-
entrez le mot de passe de keystore: c'est le mot de passe lorsque votre keystorerelease registre.
alors vous aurez un hachage clé: jDehABCDIQEDWAYz5Ow4sjsxLSw=
-
Login facebook. Accès pour Gérer des Applications. Coller le hachage de la clé à votre application sur developers.facebook.com
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
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.
le mot de passe du certificat de débogage est android et non Android
enfin:)
Voici mon histoire:
-
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) { }
-
changez le nom de votre paquet!
- Signer votre application (Android Outils->Exporter de Demande Signé)
- 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
- 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!
- maintenant , quand il est visible, allez à l'application facebook que vous avez créé et ajoutez-le à [touches de hachage]
- notez que le nom de votre paquet doit être le même que sur facebook [Nom du paquet] sous [touches Hashes]
- Have a nice day :)
une solution de ligne à générer pour facebook
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
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
bien que ce fil soit ancien, je voudrais partager mon expérience (récemment commencé à travailler avec facebook), qui me semble droite:
- télécharger openssl à partir du lien ci-dessous: https://code.google.com/p/openssl-for-windows/downloads/list
- décompresser sur un lecteur local (par exemple, C:\openssl)
-
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.
- 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
grand billet de blog sur le sujet
extraire le hachage de la clé .P12 clé
- ouvrez le Terminal ou la ligne de commande et naviguez jusqu'à votre .p12.
- Type: "keytool -v -list -keystore mycert.p12 -storetype pkcs12" où mycert.p12 est le nom de fichier de votre .clé p12.
- 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.
- 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."
- ouvrir le terminal à nouveau et taper: "openssl base64-in sha1.bin-out base64.txt".
- 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.
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
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.
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 **
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
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
la seule chose qui fonctionne pour moi est d'utiliser le mot de passe android
. Pourquoi n'est-ce pas mentionné dans les guides?
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){
}