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?

161
demandé sur Zachary Espiritu 2012-08-10 10:04:04

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:

OpenSSL pour 64 Bits

OpenSSL pour 32 Bits

359
répondu Usama Sarwar 2014-11-20 18:50:42

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.

22
répondu Kaloyan Drenski 2013-03-29 03:20:40

, Veuillez suivre ces étapes, j'espère que votre clé fonctionne correctement:

  1. Étape 1, Vous aurez besoin d'OpenSSL. Vous pouvez télécharger le binaire à partir du projet openssl-for-windows sur Google Code.

  2. É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ès C:\Users\gaurav\openssl-0.9.8k_WIN32\bin.

  3. É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.

17
répondu GAURAV KUMAR GUPTA 2013-04-28 14:57:35

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**

10
répondu Siddiq Abu Bakkar 2012-09-08 02:07:58

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>
9
répondu Sagar Chavada 2016-08-05 06:06:35

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:
6
répondu Vibhor Kashyap 2014-08-12 06:08:13

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
2
répondu Nguyễn Kim 2013-04-09 09:09:30

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

2
répondu Azahar 2013-11-23 11:58:48
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

2
répondu sandhu 2015-05-13 19:00:59

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();
        }

    }
1
répondu Keshav Gera 2017-05-26 11:24:41

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

Http://www.openssl.org/related/binaries.html

0
répondu Haze 2012-11-08 12:00:34

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é

0
répondu Dhananjay 2014-09-30 06:08:56

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.

0
répondu Oladipo Olasemo 2014-11-20 19:44:07

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
0
répondu Manish 2017-09-09 08:11:23

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

-1
répondu Nirav Shah 2013-05-02 10:11:16