Openssl non è riconosciuto come comando interno o esterno


177

Desidero generare una firma dell'applicazione per la mia app che verrà successivamente integrata con Facebook. In uno dei tutorial di Facebook, ho trovato questo comando:

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

Nel tutorial, dice che eseguendo questo cmd, inizierà il mio processo di generazione della firma.

Tuttavia, questo comando fornisce un errore:

openssl is not recognized as an internal or external command

Come posso liberarmi di questo?


10
Scarica e installa OpenSSL .
Michael Petrotta,

Ho scaricato 3 di questi nessuno è compatibile: /
Khurram

1
Che cosa significa khurram?
Michael Petrotta,

1
Ho scaricato molte versioni di openssl dal link che hai fornito, ma ognuna di esse fornisce un errore prima dell'installazione che non è compatibile con Windows 7-64 bit. Puoi dirmi l'esatta apertura di cui ho bisogno
Khurram

1
puoi ottenerlo dal link che ho pubblicato nel mio seguito ...
Usama Sarwar

Risposte:


395

Bene al posto di openssl ... devi inserire il percorso della cartella openssl che hai scaricato. Il tuo comando effettivo dovrebbe apparire come:

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

Ricorda, il percorso che inserirai sarà il percorso in cui hai installato openssl ... spero che questo ti aiuti .. :-)

Modificare:

puoi scaricare openssl per Windows a 32 e 64 bit dai rispettivi link sottostanti:

OpenSSL per 64 bit

OpenSSL per 32 bit


1
dice c: \ openssl \ bin \ openssl non viene riconosciuto
Akhil Jain,

7
un modo migliore sarebbe quello di eseguire il comando originale dalla directory openssl / bin. Vale a dire se la mia directory openssl è in C: dev, mi sposterei in C: \ dev \ openssl \ bin ed eseguirò il comando così com'è
AnhSirk Dasarp

2
dovresti segnalare il file 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 sì hai ragione. la tua strada ha funzionato per me. Molte grazie.
surhidamatya,

grazie ... dopo aver provato circa un'ora, la tua risposta ha funzionato per me
Krupal Shah,

23

Usa l'intero percorso, in questo modo:

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

Ha funzionato per me.


18

Segui questi passaggi, spero che la tua chiave funzioni correttamente:

  1. Step 1 Avrai bisogno di OpenSSL. Puoi scaricare il file binario dal progetto openssl-for-windows su Google Code.

  2. Passaggio 2 Decomprimere la cartella, quindi copiare il percorso nella bincartella negli Appunti.

    Ad esempio, se il file è decompresso nella posizione C:\Users\gaurav\openssl-0.9.8k_WIN32, quindi copiare il percorso C:\Users\gaurav\openssl-0.9.8k_WIN32\bin.

  3. Passaggio 3 Aggiungere il percorso al percorso dell'ambiente di sistema. Dopo aver PATHimpostato la variabile di ambiente, apri cmd e digita questo comando:

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

    Digitare la password quando richiesto. Se il comando funziona, ti verrà mostrata una chiave.


Cordiali saluti: Di ​​solito la password debug.keystore è solo "android".
Qualcuno da qualche parte

11

Questo ha funzionato per me con successo.

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

Fai attenzione con il percorso seguente:

  • "C: \ Programmi \ Java \ jdk1.6.0_26 \ bin \ keytool.exe"
  • "D: \ keystore \ SocialListing" o può essere così " C: \ Users \ Shaon.android \ debug.keystore "
  • "C: \ cygwin \ bin \ openssl.exe" o può essere così C: \ Users \ openssl \ bin \ openssl.exe

Se il comando funziona correttamente, vedrai questo comando:

Immettere la password del keystore: digitare la password

Encryptedhashkey **


10

è una risposta tardiva ma aiuterà le persone pigre come me .. aggiungi questo codice alla tua classe di applicazione, non è necessario scaricare openssl e non è necessario impostare il percorso .. basta solo copiare questo codice .. e keyHash lo farà generato nel registro.

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

e non dimenticare di aggiungere la classe MyApplication in manifest:

<application
        android:name=".MyApplication"
</application>

funziona per la versione di rilascio di Facebook? se no come?
MetaSnarf,

Questo codice viene utilizzato per generare keyhash. E la stessa chiave anche per il rilascio. Per la versione di rilascio assicurati di impostare l'accesso pubblico nella console di sviluppo di Facebook.
Sagar Chavada,

Viene visualizzato l'errore "Sia il contesto che l'IdI applicazione devono essere non nulli", se utilizzati sopra il codice. @SagarChavada
Yesha Shah,

6

Prima vai alla tua cartella Java / jre / bin in cmd cd c: \ Programmi (x86) \ Java \ jre7 \ bin

Quindi utilizzare: [modificare il percorso debug.keystore nella posizione corretta sul proprio sistema] install openssl (per Windows 32 o 64 secondo le proprie esigenze in 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

Quindi l'intero comando va in questo modo: [richiede di inserire la password del keystore durante l'esecuzione]

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:

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. 

quindi vai C: \ Programmi \ Java \ jdk1.8.0_05 \ bin e premi il tasto MAIUSC e fai clic con il tasto destro e apri cmd

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

cioè per Sha1 oltre questo
keytool -exportcert -alias androiddebugkey -keystore "C: \ User \ ABC \ .android.keystore" | openssl sha1 -binary | openssl base64
// e ABC è il nome del sistema e inserisci il proprio nome di sistema


A quale bincartella ti riferisci nel secondo passaggio?
Ionut Necula,

2

Ho usato questo codice:

Questo ha funzionato per me con successo.

"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

usa questo ha funzionato per me. per favore cambia il tuo percorso

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


deve scaricare openssl da qui code.google.com/p/openssl-for-windows/downloads/… e copiare la cartella bin e incollare in C: \ openssl \
Azahar

1

Download e decompressione

Puoi scaricare openssl per Windows a 32 e 64 bit dai rispettivi link sottostanti:

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

OpenSSL per 64 bit OpenSSL per 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

Importante cambia il nostro percorso Qui e installa open ssl nel tuo sistema

Funziona senza dubbio

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

Inserisci la password del keystore: android

**ZrRtxw36xWNYL+h3aJdcCeQQxi0=**

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

utilizzando manualmente tramite la codifica

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

    }


0

vai al percorso della cartella bin in cmd ed esegui il seguente comando

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

otterrai il tuo hash chiave


0

per gli utenti di Windows scaricare open ssl dal repository di codice di Google https://code.google.com/p/openssl-for-windows/downloads/list

Dopo il download, estrarre il contenuto in una cartella preferibilmente nell'unità c :.

Quindi aggiornare la variabile di ambiente PATH in modo da poter utilizzare .exe da qualsiasi posizione nella riga di comando.

[windows 8] Per aggiornare la variabile di ambiente PATH, fai clic su Risorse del computer-> Proprietà-> Impostazioni di sistema avanzate.

Fai clic sulla scheda Avanzate e fai clic sul pulsante "Variabile d'ambiente" nella parte inferiore della finestra di dialogo, quindi seleziona la voce Percorso dalla sezione "Variabili di sistema" facendo clic su Modifica.

Incolla il percorso nella cartella bin del download openssl estratto e fai clic su OK.

Dovrai chiudere, aprire e il prompt dei comandi che potresti aver precedentemente avviato in modo da poter caricare le impostazioni del percorso aggiornate.

Ora esegui questo comando:

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

Dovresti vedere la chiave dello sviluppatore.


0

Questo funziona per me:

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.