Openssl n'est pas reconnu comme une commande interne ou externe
Je souhaite générer une signature d'application pour mon application qui sera ensuite intégrée à Facebook. Dans L'un des tutoriels de Facebook, j'ai trouvé cette commande:
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
Dans le tutoriel, il est dit qu'en exécutant ce cmd, mon processus de génération de la signature va commencer.
Cependant, cette commande donne une erreur:
openssl is not recognized as an internal or external command
Comment puis-je m'en débarrasser?
15 réponses
Bien à la place d'openssl ... vous devez mettre en fait le chemin d'accès à votre dossier openssl que vous avez téléchargé. Votre commande réelle devrait ressembler à:
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | "C:\Users\abc\openssl\bin\openssl.exe" sha1 -binary | "C:\Users\abc\openssl\bin\openssl.exe" base64
Rappelez-vous, le chemin que vous allez entrer sera le chemin où vous avez installé openssl...espérons que cette aide..:-)
Modifier:
Vous pouvez télécharger openssl pour windows 32 et 64 bits à partir des liens respectifs ci-dessous:
Utilisez le chemin entier, comme ceci:
exportcert -alias androiddebugkey -keystore ~/.android
/debug.keystore | "C:\openssl\bin\openssl.exe" sha1 -binary | "C:\openssl\bin\op
enssl.exe" base64
Ça a marché pour moi.
, Veuillez suivre ces étapes, j'espère que votre clé fonctionne correctement:
Étape 1, Vous aurez besoin d'OpenSSL. Vous pouvez télécharger le binaire à partir du projet openssl-for-windows sur Google Code.
-
Étape 2 décompressez le dossier, puis copiez le chemin d'accès au dossier
bin
dans le presse-papiers.Par exemple, si le fichier est décompressé à l'emplacement
C:\Users\gaurav\openssl-0.9.8k_WIN32
, puis copier le chemin d'accèsC:\Users\gaurav\openssl-0.9.8k_WIN32\bin
. -
Étape 3 Ajouter le chemin d'accès à votre chemin de l'environnement système. Une fois votre variable d'environnement
PATH
définie, ouvrez le cmd et tapez cette commande:C:\>keytool -exportcert -alias androiddebugkey -keystore [path to debug.keystore] | openssl sha1 -binary | openssl base64
Saisissez votre mot de passe lorsque vous y êtes invité. Si la commande fonctionne, une clé vous sera affichée.
Cela a fonctionné pour moi avec succès.
"C:\Program fichiers\Java \ jdk1. 6. 0_26 \ bin\keytool.exe " - exportcert-alias sociallisting-keystore "D:\keystore\SocialListing" | " C:\cygwin\bin\openssl.exe " sha1-binaire | "C:\cygwin\bin\openssl.exe " base64
Soyez prudent avec le chemin ci-dessous:
- "C:\Program fichiers\Java \ jdk1. 6. 0_26 \ bin\keytool.exe "
- "D:\keystore\SocialListing" ou cela peut être comme ceci " C:\Users\Shaon.android \ debug.keystore "
- "C:\cygwin\bin\openssl.exe" ou peut être comme ceci C:\Users\openssl\bin\openssl.exe
Si la commande fonctionne avec succès, vous verrez cette commande:
Entrez le mot de passe keystore: typeyourpassword
Encryptedhashkey**
C'est une réponse tardive mais cela aidera les gens paresseux comme moi.. ajoutez ce code à votre classe d'Application, il n'est pas nécessaire de télécharger openssl et pas besoin de définir le chemin d'accès.. seulement besoin est juste de copier mon code.. et keyHash sera généré dans le journal.
import com.facebook.FacebookSdk;
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
FacebookSdk.sdkInitialize(getApplicationContext());
AppEventsLogger.activateApp(this);
printKeyHash();
}
private void printKeyHash() {
try {
PackageInfo info = getPackageManager().getPackageInfo(
getPackageName(), 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 (PackageManager.NameNotFoundException e) {
Log.e("jk", "Exception(NameNotFoundException) : " + e);
} catch (NoSuchAlgorithmException e) {
Log.e("mkm", "Exception(NoSuchAlgorithmException) : " + e);
}
}
}
Et n'oubliez pas d'ajouter la classe MyApplication dans manifest:
<application
android:name=".MyApplication"
</application>
Accédez D'abord à votre dossier Java / JRE / bin dans cmd cd c:\Program fichiers (x86)\Java\jre7 \ bin
Ensuite, utilisez : [modifier le débogage.keystore chemin vers l'emplacement correct sur votre système] installez openssl (pour windows 32 ou 64 selon vos besoins à c:\openssl )
keytool -exportcert -alias androiddebugkey -keystore "C:\Users\vibhor\.android\debug.keystore" | "c:\openssl\bin\openssl.exe" sha1 -binary | "c:\openssl\bin\openssl.exe" base64
Donc, toute la commande va comme ceci: [invite à entrer le mot de passe du magasin de clés lors de l'exécution]
c:\Program Files (x86)\Java\jre7\bin>keytool -exportcert -alias androiddebugkey
-keystore "C:\Users\vibhor\.android\debug.keystore" | "c:\openssl\bin\openssl.ex
e" sha1 -binary | "c:\openssl\bin\openssl.exe" base64
Enter keystore password:
J'ai utilisé ce code:
Cela a fonctionné pour moi avec succès.
"C:\Program Files\Java\jdk1.6.0_26\bin\keytool.exe" -exportcert -alias sociallisting -
keystore "D:\keystore\SocialListing" | "C:\cygwin\bin\openssl.exe" sha1 -binary |
"C:\cygwin\bin\openssl.exe" base64
Utilisez cela a fonctionné pour moi. veuillez changer votre chemin
C:\Program fichiers\Java \ jre7\bin keytool-exportcert-alias androiddebugkey-keystore "C:\Users\Ace.android \ debug.keystore " | " C:\openssl\bin
\ openssl.exe " sha1-binaire | "C:\openssl\bin\openssl.exe " base64
Steps to create Hash Key.
1: Download openssl from Openssl for Windows . I downloaded the Win64 version
2:Unzip and copy all the files in the bin folder including openssl.exe(All file of bin folder)
3:Goto to the folder where you installed JDK for me it’s C:\Program Files\Java\jdk1.8.0_05\bin
4:Paste all the files you copied from Openssl’s bin folder to the Jdk folder.
Alors allez C:\Program fichiers\Java \ jdk1.8. 0_05\bin et appuyez sur la touche Maj et faites un clic droit et ouvrez cmd
C:\Program Files\Java\jdk1.8.0_05\bin>//cmd path
C'est pour Sha1 passé ce
keytool-exportcert-alias androiddebugkey-keystore "C:\User\ABC\.Android.keystore" | openssl sha1 -binaire | openssl base64
// et ABC est le nom du système mis propre nom du système
Télécharger et décompresser
Vous pouvez télécharger openssl pour windows 32 et 64 bits à partir des liens respectifs ci-dessous:
Https://code.google.com/archive/p/openssl-for-windows/downloads
OpenSSL pour 64 Bits OpenSSL pour 32 Bits
keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | **"C:\Users\keshav.gera\openssl-0.9.8k_X64\bin**\openssl.exe" sha1 -binary | **"C:\Users\keshav.gera\openssl-0.9.8k_X64\bin**\openssl.exe" base64
Important changez notre chemin ici et installez open ssl dans votre système
Ça marche sans aucun doute
C:\Users\keshav.gera>keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | "C:\Users\keshav.gera\openssl-0.9.8k_X64\bin\openssl.exe" sha1 -binary | "C:\Users\keshav.gera\openssl-0.9.8k_X64\bin\openssl.exe" base64
Entrez le mot de passe du magasin de clés: android
**ZrRtxw36xWNYL+h3aJdcCeQQxi0=**
=============================================================
Utilisation manuelle par codage
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.Signature;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
private void PrintHashKey() {
try {
PackageInfo info = getPackageManager().getPackageInfo("**com.keshav.patanjalidemo Your Package Name Here**", 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 (PackageManager.NameNotFoundException e) {
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
Pour ceux qui recherchent un emplacement plus récent pour installer une version binaire windows d'openssl (32 bits et 64 bits), vous pouvez le trouver ici:
Http://slproweb.com/products/Win32OpenSSL.html
Une liste à jour des sites Web qui offrent des distributions binaires est ici
Allez dans le chemin du dossier bin dans cmd, puis exécutez la commande suivante
keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64
Vous obtiendrez votre hachage de clé
Pour les utilisateurs windows, téléchargez open ssl depuis le référentiel de code de google https://code.google.com/p/openssl-for-windows/downloads/list
Après le téléchargement, extrayez le contenu dans un dossier de préférence dans votre lecteur c:.
Ensuite, mettez à jour votre variable D'environnement PATH afin que vous puissiez utiliser le .exe depuis n'importe quel emplacement de votre ligne de commande.
[windows 8] pour mettre à jour votre variable D'environnement PATH, cliquez sur Poste de travail->Propriétés->Paramètres Système avancés.
Cliquez sur le bouton Onglet Avancé et cliquez sur le bouton' variable D'environnement 'en bas de la boîte de dialogue, puis sélectionnez L'entrée de chemin dans la Section' Variables système ' en cliquant sur Modifier.
Collez le chemin d'accès au dossier bin du téléchargement openssl extrait et cliquez sur ok.
Vous devrez fermer et ouvrir et invite de commande que vous avez peut-être déjà lancé afin que vous puissiez charger les paramètres de chemin mis à jour.
Exécutez maintenant cette commande:
Keytool-exportcert-alias androiddebugkey-keystore "C:\Users\Oladipo.android \ debug.keystore" | openssl sha1 -binaire | openssl base64
Vous devriez voir la clé développeur.
Cela fonctionne pour moi:
C:\Users\example>keytool -exportcert -alias androiddebugkey -keystore
"C:\Users\example\.android" | "C:\openssl\bin\openssl.exe" sha1 -binary
| "C:\openssl\bin\oenssl.exe" base64
Il n'est pas garanti que la génération de hashkey avec cette seule méthode openssl fonctionnera. Si cela ne fonctionne pas pour moi. Mais merci de m'avoir donné une direction pour résoudre mon problème.
Solution Garantie : Vous devez casser la commande entière dans des commandes séparées et écrire la sortie de chaque exécution dans le fichier.
, Vous pouvez prendre l'aide du lien suivant :
Http://www.helloandroid.com/tutorials/using-facebook-sdk-android-development-part-1
Profitez :)