webentwicklung-frage-antwort-db.com.de

Openssl wird nicht als interner oder externer Befehl erkannt

Ich möchte eine Anwendungssignatur für meine App generieren, die später in Facebook integriert wird. In einem der Tutorials von Facebook habe ich diesen Befehl gefunden:

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

Im Tutorial heißt es, dass durch Ausführen dieses Befehls mein Prozess zum Generieren der Signatur gestartet wird.

Dieser Befehl gibt jedoch einen Fehler aus:

openssl is not recognized as an internal or external command

Wie kann ich das loswerden?

168
khurram

Nun, am Ort von openssl ... müssen Sie tatsächlich den Pfad zu Ihrem openssl-Ordner angeben, den Sie heruntergeladen haben. Ihr tatsächlicher Befehl sollte wie folgt aussehen:

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

Denken Sie daran, dass der Pfad, den Sie eingeben, der Pfad ist, in dem Sie das openssl installiert haben ... Ich hoffe, das hilft .. :-)

Bearbeiten:

sie können openssl für Windows 32 und 64 Bit unter den folgenden Links herunterladen:

OpenSSL für 64 Bits

OpenSSL für 32 Bits

377
Usama Sarwar

Verwenden Sie den gesamten Pfad wie folgt:

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

Es hat bei mir funktioniert.

22
Kaloyan Drenski

Bitte folgen Sie diesen Schritten, ich hoffe Ihr Schlüssel funktioniert richtig:

  1. Schritt 1 Sie benötigen OpenSSL. Sie können die Binärdatei von openssl-for-windows project in Google Code herunterladen.

  2. Schritt 2 Entpacken Sie den Ordner und kopieren Sie den Pfad zum Ordner bin in die Zwischenablage.

    Wenn die Datei beispielsweise an den Speicherort entpackt wird, wird C:\Users\gaurav\openssl-0.9.8k_WIN32, dann kopiere den Pfad C:\Users\gaurav\openssl-0.9.8k_WIN32\bin.

  3. Schritt 3 Fügen Sie den Pfad zu Ihrem Systemumgebungspfad hinzu. Nachdem Sie die Umgebungsvariable PATH festgelegt haben, öffnen Sie den Befehl cmd und geben Sie den folgenden Befehl ein:

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

    Geben Sie Ihr Passwort ein, wenn Sie dazu aufgefordert werden. Wenn der Befehl funktioniert, wird Ihnen ein Schlüssel angezeigt.

18

Das hat bei mir erfolgreich geklappt.

"C:\Programme\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

Sei vorsichtig mit folgendem Pfad:

  • "C:\Programme\Java\jdk1.6.0_26\bin\keytool.exe"
  • "D:\keystore\SocialListing" oder es kann so sein "C:\Users\Shaon.Android\debug.keystore"
  • "C:\cygwin\bin\openssl.exe" oder kann so sein C:\Users\openssl\bin\openssl.exe

Wenn der Befehl erfolgreich ausgeführt wurde, wird folgender Befehl angezeigt:

Geben Sie das Keystore-Passwort ein: typeyourpassword

Encryptedhashkey **

11

es ist eine späte Antwort, aber es hilft faulen Leuten wie mir. Fügen Sie diesen Code zu Ihrer Anwendungsklasse hinzu. Sie müssen weder openssl herunterladen noch den Pfad festlegen. Sie müssen nur diesen Code kopieren. Und keyHash wird es tun im Log generiert.

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

und vergessen Sie nicht, die MyApplication-Klasse im Manifest hinzuzufügen:

<application
        Android:name=".MyApplication"
</application>
10
Sagar Chavada

Navigieren Sie zuerst zu Ihrem Java/jre/bin-Ordner unter cmd cd c:\Programme (x86)\Java\jre7\bin

Verwenden Sie dann: [Ändern Sie den Pfad debug.keystore an den richtigen Ort auf Ihrem System] Installieren Sie openssl (für Windows 32 oder 64 gemäß Ihren Anforderungen unter 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

Der gesamte Befehl sieht also so aus: [Fordert zur Eingabe des Keystore-Passworts bei der Ausführung auf]

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
Vibhor Kashyap
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. 

gehen Sie dann zu C:\Programme\Java\jdk1.8.0_05\bin und drücken Sie die Umschalttaste und klicken Sie mit der rechten Maustaste und öffnen Sie cmd

C:\Program Files\Java\jdk1.8.0_05\bin>//cmd path 

das ist für Sha1 vorbei
keytool -exportcert -alias androiddebugkey -keystore "C:\User\ABC\.Android.keystore" | openssl sha1 -binary | openssl base64
// und ABC ist der Name des eigenen Systems

4
sandhu

Ich habe diesen Code benutzt:

Das hat bei mir erfolgreich geklappt.

"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
Nguyễn Kim

verwenden Sie dies funktionierte für mich. Bitte ändern Sie Ihren Pfad

C:\Programme\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

2
Azahar

Downloads und Entpacken

Sie können openssl für Windows 32 und 64 Bit unter den folgenden Links herunterladen:

https://code.google.com/archive/p/openssl-for-windows/downloads

OpenSSL für 64 Bit OpenSSL für 32 Bit

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

Wichtig ändere unseren Pfad Hier sowie installiere open ssl in deinem System

Es funktioniert ohne Zweifel

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

Geben Sie das Kennwort für den Keystore ein: Android

**ZrRtxw36xWNYL+h3aJdcCeQQxi0=**

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

manuell durch Codierung verwenden

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
Keshav Gera

gehen Sie in cmd zum Ordnerpfad bin und führen Sie den folgenden Befehl aus

keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.Android\debug.keystore | openssl sha1 -binary | openssl base64

sie werden Ihren Schlüssel-Hash bekommen

0
DjP

Das funktioniert bei mir:

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
Manish

für Windows-Benutzer laden Sie open ssl aus dem Google-Code-Repository herunter https://code.google.com/p/openssl-for-windows/downloads/list

Extrahieren Sie den Inhalt nach dem Download in einen Ordner, der sich vorzugsweise auf Ihrem Laufwerk c: befindet.

Aktualisieren Sie dann Ihre PATH-Umgebungsvariable, sodass Sie die EXE-Datei an jedem Ort in Ihrer Befehlszeile verwenden können.

[Windows 8] Um Ihre PATH-Umgebungsvariable zu aktualisieren, klicken Sie auf Arbeitsplatz-> Eigenschaften-> Erweiterte Systemeinstellungen.

Klicken Sie auf die Registerkarte "Erweitert" und klicken Sie unten im Dialogfeld auf die Schaltfläche "Umgebungsvariable". Wählen Sie dann im Abschnitt "Systemvariablen" den Eintrag "Pfad" aus, indem Sie auf "Bearbeiten" klicken.

Fügen Sie den Pfad zum bin-Ordner des extrahierten openssl-Downloads ein und klicken Sie auf OK.

Sie müssen die zuvor gestartete Eingabeaufforderung schließen und öffnen, um die aktualisierten Pfadeinstellungen zu laden.

Führen Sie nun diesen Befehl aus:

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

Sie sollten den Entwicklerschlüssel sehen.

0
Oladipo Olasemo

Für diejenigen, die einen neueren Speicherort für die Installation einer Windows-Binärversion von openssl (32bit und 64bit) suchen, finden Sie diesen hier:

http://slproweb.com/products/Win32OpenSSL.html

Eine aktuelle Liste der Websites, die Binärdistributionen anbieten, finden Sie hier

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

0
Haze