Openssl no se reconoce como un comando interno o externo

177

Deseo generar una firma de aplicación para mi aplicación que luego se integrará con Facebook. En uno de los tutoriales de Facebook, encontré este comando:

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

En el tutorial, dice que al ejecutar este cmd, comenzará mi proceso de generar la firma.

Sin embargo, este comando da un error:

openssl is not recognized as an internal or external command

¿Cómo puedo deshacerme de esto?

Khurram
fuente
10
Descargue e instale OpenSSL .
Michael Petrotta
Descargué 3 de ellos, nadie es compatible: /
Khurram
1
¿Qué significa eso, khurram?
Michael Petrotta
1
Descargué muchas versiones de openssl desde el enlace que proporcionó, pero cada una de ellas muestra un error antes de la instalación de que no es compatible con Windows 7-64 bit. ¿Me puede decir la apertura exacta que necesito
Khurram
1
puede obtenerlo desde el enlace que publiqué en mi Ans a continuación ...
Usama Sarwar

Respuestas:

395

Bueno, en el lugar de openssl ... tienes que poner realmente la ruta a tu carpeta openssl que has descargado. Su comando real debería verse así:

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

Recuerde, la ruta que ingresará será la ruta donde instaló el openssl ... espero que esto ayude ... :-)

Editar:

puede descargar openssl para Windows de 32 y 64 bits desde los respectivos enlaces a continuación:

OpenSSL para 64 bits

OpenSSL para 32 bits

Usama Sarwar
fuente
1
dice c: \ openssl \ bin \ openssl no se reconoce
Akhil Jain
77
una mejor manera sería ejecutar el comando original desde el directorio openssl / bin. Es decir, si mi directorio openssl está en C: dev, me movería a C: \ dev \ openssl \ bin y ejecutaría el comando tal como está
AnhSirk Dasarp
2
debe señalar el archivo openssl.exe: exportcert -alias androiddebugkey -keystore ~ ​​/ .android /debug.keystore | "C: \ openssl \ bin \ openssl.exe" sha1 -binario | "C: \ openssl \ bin \ op enssl.exe" base64
phanhongphucit
@LatentBoy, sí, tienes razón. Tu manera funcionó para mí. Muchas gracias.
surhidamatya
gracias ... después de intentar aproximadamente una hora, su respuesta funcionó para mí
Krupal Shah
23

Use la ruta completa, así:

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

Funcionó para mi.

Kaloyan Drenski
fuente
18

Siga estos pasos, espero que su clave funcione correctamente:

  1. Paso 1 Necesitarás OpenSSL. Puede descargar el binario del proyecto openssl-for-windows en Google Code.

  2. Paso 2 Descomprima la carpeta, luego copie la ruta a la bincarpeta en el portapapeles.

    Por ejemplo, si el archivo se descomprime en la ubicación C:\Users\gaurav\openssl-0.9.8k_WIN32, copie la ruta C:\Users\gaurav\openssl-0.9.8k_WIN32\bin.

  3. Paso 3 Agregue la ruta a la ruta del entorno del sistema. Una vez establecida la PATHvariable de entorno, abra el cmd y escriba este comando:

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

    Escriba su contraseña cuando se le solicite. Si el comando funciona, se le mostrará una clave.

GAURAV KUMAR GUPTA
fuente
FYI: Por lo general, la contraseña de debug.keystore es solo "android".
Alguien en algún lugar el
11

Esto me funcionó con éxito.

"C: \ Archivos de programa \ Java \ jdk1.6.0_26 \ bin \ keytool.exe" -exportcert -alias sociallisting -keystore "D: \ keystore \ SocialListing" | "C: \ cygwin \ bin \ openssl.exe" sha1 -binario | "C: \ cygwin \ bin \ openssl.exe" base64

Tenga cuidado con el siguiente camino:

  • "C: \ Archivos de programa \ Java \ jdk1.6.0_26 \ bin \ keytool.exe"
  • "D: \ keystore \ SocialListing" o puede ser así " C: \ Users \ Shaon.android \ debug.keystore "
  • "C: \ cygwin \ bin \ openssl.exe" o puede ser así C: \ Users \ openssl \ bin \ openssl.exe

Si el comando funciona correctamente, verá este comando:

Introduzca la contraseña del almacén de claves: escriba su contraseña

Clave encriptada **

Siddiq Abu Bakkar
fuente
10

es una respuesta tardía, pero ayudará a las personas perezosas como yo ... agregue este código a su clase de aplicación, no es necesario descargar openssl y no es necesario establecer la ruta ... solo necesita copiar este código ... y keyHash lo hará generado en el 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);
        }
    }
}

y no olvides agregar la clase MyApplication en manifiesto:

<application
        android:name=".MyApplication"
</application>
Sagar Chavada
fuente
funciona esto para la versión de lanzamiento de facebook? si no como?
MetaSnarf
Este código se usa para generar keyhash. Y es la misma clave para el lanzamiento también. Para la versión de lanzamiento, asegúrese de configurar el acceso público en la consola de desarrolladores de Facebook.
Sagar Chavada
Obteniendo el error "Tanto el contexto como el ID de aplicación deben ser no nulos", cuando se usa el código anterior. @SagarChavada
Yesha Shah
6

Primero navegue a su carpeta Java / jre / bin en cmd cd c: \ Program Files (x86) \ Java \ jre7 \ bin

Luego use: [cambie la ruta debug.keystore a la ubicación correcta en su sistema] instale openssl (para Windows 32 o 64 según sus necesidades en 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

Entonces, el comando completo es así: [solicita ingresar la contraseña del almacén de claves en la ejecución]

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
fuente
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. 

luego vaya a C: \ Archivos de programa \ Java \ jdk1.8.0_05 \ bin y presione la tecla Mayús y haga clic derecho y abra cmd

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

eso es para Sha1 más allá de esta
herramienta clave -exportcert -alias androiddebugkey -keystore "C: \ User \ ABC \ .android.keystore" | openssl sha1 -binario | openssl base64
// y ABC es el nombre del sistema poner nombre propio del sistema

sandhu
fuente
¿A qué bincarpeta te refieres en el segundo paso?
Ionut Necula
2

Usé este código:

Esto me funcionó con éxito.

"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
fuente
2

usar esto funcionó para mí. por favor cambia tu camino

C: \ Archivos de programa \ 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
fuente
debe descargar openssl desde aquí code.google.com/p/openssl-for-windows/downloads/… y copiar la carpeta bin y pegarla en C: \ openssl \
Azahar el
1

Descargas y descomprimir

Puede descargar openssl para Windows 32 y 64 bit desde los enlaces respectivos a continuación:

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

OpenSSL para 64 Bits OpenSSL para 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

Importante cambiar nuestra ruta aquí, así como instalar open ssl en su sistema

Está funcionando sin dudas

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

Introduzca la contraseña del almacén de claves: android

**ZrRtxw36xWNYL+h3aJdcCeQQxi0=**

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

usando manualmente a través de la codificación

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
fuente
0

vaya a la ruta de la carpeta bin en cmd y luego ejecute el siguiente comando

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

obtendrás tu clave hash

DjP
fuente
0

para usuarios de Windows, descargue Open SSL del repositorio de código de Google https://code.google.com/p/openssl-for-windows/downloads/list

Después de la descarga, extraiga el contenido a una carpeta preferiblemente en su unidad c:.

Luego actualice su variable de entorno PATH para que pueda usar el .exe desde cualquier ubicación en su línea de comando.

[Windows 8] Para actualizar su variable de entorno PATH, haga clic en mi computadora-> propiedades-> Configuración avanzada del sistema.

Haga clic en la pestaña Avanzado y haga clic en el botón 'Variable de entorno' en la parte inferior del cuadro de diálogo, luego seleccione la entrada Ruta de la sección 'Variables del sistema' haciendo clic en editar.

Pegue la ruta a la carpeta bin de la descarga de openssl extraída y haga clic en Aceptar.

Deberá cerrar y abrir un símbolo del sistema que haya iniciado anteriormente para poder cargar la configuración de ruta actualizada.

Ahora ejecuta este comando:

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

Deberías ver la clave de desarrollador.

Oladipo Olasemo
fuente
0

Esto funciona para mi:

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
fuente
-1

No se garantiza que funcione la generación de hashkey con este único método openssl. Si no me funciona. Pero gracias por darme una dirección para resolver mi problema.

Solución garantizada: debe dividir todo el comando en comandos separados y escribir la salida de cada ejecución en el archivo.

Puede obtener la ayuda del siguiente enlace:

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

Disfruta :)

Nirav Shah
fuente