Openssl n'est pas reconnu comme une commande interne ou externe

177

Je souhaite générer une signature d'application pour mon application qui sera ultérieurement 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 didacticiel, il est dit qu'en exécutant cette cmd, mon processus de génération de la signature démarrera.

Cependant, cette commande donne une erreur:

openssl is not recognized as an internal or external command

Comment puis-je le débarrasser de ça?

Khurram
la source
10
Téléchargez et installez OpenSSL .
Michael Petrotta
J'ai téléchargé 3 d'entre eux, personne n'est compatible: /
Khurram
1
Qu'est-ce que cela signifie, khurram?
Michael Petrotta
1
J'ai téléchargé de nombreuses versions de openssl à partir du lien que vous avez donné mais chacune d'elles donne une erreur avant l'installation indiquant qu'elle n'est pas compatible avec Windows 7-64 bits. Pouvez-vous me dire l'openssl exact dont j'ai besoin
Khurram
1
vous pouvez l'obtenir à partir du lien que j'ai publié dans mes ans ci-dessous ...
Usama Sarwar

Réponses:

395

Eh bien, à la place de openssl ... vous devez mettre en fait le chemin de 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

N'oubliez pas que le chemin que vous allez entrer sera le chemin où vous avez installé le openssl ... j'espère que cela vous aidera .. :-)

Éditer:

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

Usama Sarwar
la source
1
il dit que c: \ openssl \ bin \ openssl n'est pas reconnu
Akhil Jain
7
une meilleure façon serait d'exécuter la commande d'origine à partir du répertoire openssl / bin. Ie si mon répertoire openssl est dans C: dev, je passerais à C: \ dev \ openssl \ bin, et exécuterais la commande telle quelle
AnhSirk Dasarp
2
vous devez signaler le fichier openssl.exe: exportcert -alias androiddebugkey -keystore ~ ​​/ .android /debug.keystore | "C: \ openssl \ bin \ openssl.exe" sha1 -binary | "C: \ openssl \ bin \ op enssl.exe" base64
phanhongphucit
@LatentBoy oui vous avez raison. votre chemin a fonctionné pour moi. Merci beaucoup.
surhidamatya
merci ... après avoir essayé environ une heure, votre réponse a fonctionné pour moi
Krupal Shah
23

Utilisez le chemin complet, comme ceci:

exportcert -alias androiddebugkey -keystore ~/.android
/debug.keystore | "C:\openssl\bin\openssl.exe" sha1 -binary | "C:\openssl\bin\op
enssl.exe" base64

Cela a fonctionné pour moi.

Kaloyan Drenski
la source
18

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 bindossier dans le presse-papiers.

    Par exemple, si le fichier est décompressé à l'emplacement C:\Users\gaurav\openssl-0.9.8k_WIN32, copiez le chemin C:\Users\gaurav\openssl-0.9.8k_WIN32\bin.

  3. Étape 3 Ajoutez le chemin au chemin de votre environnement système. Une fois votre PATHvariable d'environnement définie, ouvrez la cmd et tapez cette commande:

    C:\>keytool -exportcert -alias androiddebugkey -keystore [path to debug.keystore] | openssl sha1 -binary | openssl base64

    Tapez votre mot de passe lorsque vous y êtes invité. Si la commande fonctionne, une clé s'affichera.

GAURAV KUMAR GUPTA
la source
FYI: Habituellement, le mot de passe debug.keystore est simplement "android".
Someone Somewhere
11

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 -binaire | "C: \ cygwin \ bin \ openssl.exe" base64

Soyez prudent avec le chemin ci-dessous:

  • "C: \ Program Files \ 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 du fichier de clés: tapez votre mot de passe

Clé cryptée **

Siddiq Abu Bakkar
la source
10

c'est une réponse tardive mais cela aidera les gens paresseux comme moi .. ajoutez ce code à votre classe Application, il n'est pas nécessaire de télécharger openssl et pas besoin de définir le chemin .. il suffit de copier ce code .. et keyHash le fera 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 le manifeste:

<application
        android:name=".MyApplication"
</application>
Sagar Chavada
la source
cela fonctionne-t-il pour la version finale de Facebook? sinon comment?
MetaSnarf
Ce code est utilisé pour générer des keyhash. Et sa même clé pour la libération aussi. Pour la version finale, assurez-vous que vous définissez l'accès public dans la console des développeurs Facebook.
Sagar Chavada
Obtention de l'erreur «Le contexte et l'applicationId doivent être non nuls», lorsqu'ils sont utilisés au-dessus du code. @SagarChavada
Yesha Shah
6

Accédez d'abord à votre dossier Java / jre / bin dans cmd cd c: \ Program Files (x86) \ Java \ jre7 \ bin

Ensuite, utilisez: [changez le chemin debug.keystore 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

Ainsi, toute la commande se présente comme suit: [invite à saisir le mot de passe du fichier 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:
Vibhor Kashyap
la source
5
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 its C:\Program Files\Java\jdk1.8.0_05\bin 
4:Paste all the files you copied from Openssls bin folder to the Jdk folder. 

puis allez C: \ Program Files \ Java \ jdk1.8.0_05 \ bin et appuyez sur la touche Maj et cliquez avec le bouton 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 mettre son propre nom de système

sandhu
la source
À quel bindossier faites-vous référence dans la deuxième étape?
Ionut Necula
2

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
Nguyễn Kim
la source
2

utiliser cela a fonctionné pour moi. veuillez changer votre chemin

C: \ Program Files \ Java \ jre7 \ bin keytool -exportcert -alias androiddebugkey -keystore "C: \ Users \ Ace.android \ debug.keystore" | "C: \ openssl \ bin

\ openssl.exe "sha1 -binary |" C: \ openssl \ bin \ openssl.exe "base64

Azahar
la source
doit télécharger openssl à partir d'ici code.google.com/p/openssl-for-windows/downloads/… et copier le dossier bin et coller dans C: \ openssl \
Azahar
1

Téléchargements et décompression

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

Cela fonctionne 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 keystore: android

**ZrRtxw36xWNYL+h3aJdcCeQQxi0=**

=================================================== ===========

utilisation manuelle via le 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();
        }

    }
Keshav Gera
la source
0

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é

DjP
la source
0

pour les utilisateurs de Windows, téléchargez le ssl ouvert à partir du 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:.

Mettez ensuite à jour votre variable d'environnement PATH pour pouvoir utiliser le .exe à partir de n'importe quel emplacement de votre ligne de commande.

[Windows 8] Pour mettre à jour votre variable d'environnement PATH, cliquez sur mon ordinateur-> propriétés-> Paramètres système avancés.

Cliquez sur l'onglet Avancé et cliquez sur le bouton «Variable d'environnement» en bas de la boîte de dialogue, puis sélectionnez l'entrée Chemin dans la section «Variables système» en cliquant sur Modifier.

Collez le chemin vers le dossier bin du téléchargement openssl extrait et cliquez sur ok.

Vous devrez fermer et ouvrir une invite de commande que vous avez peut-être déjà lancée afin de pouvoir charger les paramètres de chemin mis à jour.

Maintenant, exécutez cette commande:

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

Vous devriez voir la clé de développeur.

Oladipo Olasemo
la source
0

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
Manish
la source
-1

Il n'est pas garanti que la génération de hashkey avec cette méthode openssl unique 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 diviser la commande entière en commandes séparées et écrire la sortie de chaque exécution dans un fichier.

Vous pouvez prendre l'aide du lien suivant:

http://www.helloandroid.com/tutorials/using-facebook-sdk-android-development-part-1

Prendre plaisir :)

Nirav Shah
la source