Openssl no se reconoce como un comando interno o externo


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, se iniciará mi proceso de generación de 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?

Author: Zachary Espiritu, 2012-08-10

15 answers

Bien en el lugar de openssl ... tienes que poner realmente la ruta a tu carpeta openssl que has descargado. Su comando real debería tener el siguiente aspecto:

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 ha instalado openssl...espero que esto ayude..:-)

Editar:

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

OpenSSL para 64 Bits

OpenSSL para 32 Bits

 359
Author: Usama Sarwar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-11-20 18:50:42

Usa toda la ruta, así:

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

Funcionó para mí.

 22
Author: Kaloyan Drenski,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-03-29 03:20:40

Por favor, siga estos pasos, espero que su clave funcione correctamente:

  1. Paso 1 necesitará OpenSSL. Puede descargar el binario desde openssl-for-windows proyecto en Google Code.

  2. Paso 2 Descomprima la carpeta, luego copie la ruta a la carpeta bin al 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 Añadir la ruta a su ruta del entorno del sistema. Después de establecer la variable de entorno PATH, 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, entonces se le mostrará una clave.

 17
Author: GAURAV KUMAR GUPTA,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-04-28 14:57:35

Esto ha funcionado para mí 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

Tenga cuidado con la ruta de abajo:

  • "C:\Program Files \ 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

Encryptedhashkey**

 10
Author: Siddiq Abu Bakkar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-09-08 02:07:58

Es una respuesta tardía, pero ayudará a la gente perezosa como yo.. agregue este código a su clase de aplicación, no es necesario descargar openssl y no es necesario establecer la ruta.. sólo necesito copiar mi código.. y keyHash se generará 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 añadir la clase MyApplication en manifest:

<application
        android:name=".MyApplication"
</application>
 9
Author: Sagar Chavada,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-05 06:06:35

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

Luego use : [cambiar depuración.ruta del almacén de claves 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

Así que todo el comando va 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:
 6
Author: Vibhor Kashyap,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-08-12 06:08:13

Usé este código:

Esto se trabajó para mí 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
 2
Author: Nguyễn Kim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-04-09 09:09:30

Usar esto funcionó para mí. por favor, cambie su Ruta

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

 2
Author: Azahar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
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. 

Entonces vete C:\Program Files \ Java\jdk1.8. 0_05\bin y presione la tecla mayús y haga clic con el botón derecho y abra cmd

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

Eso es para Sha1 pasado esto
keytool-exportcert-alias androiddebugkey-keystore "C:\User\ABC\.androide.keystore " / openssl sha1-binary / openssl base64
// and ABC is system name put own system name

 2
Author: sandhu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-13 19:00:59

Descargas y descomprimir

Puede descargar openssl para windows 32 y 64 bits 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 Duda

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

    }
 1
Author: Keshav Gera,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-26 11:24:41

Para aquellos que buscan una ubicación más reciente para instalar una versión binaria de windows de openssl (32bit y 64bit) lo pueden encontrar aquí:

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

Una lista actualizada de sitios web que ofrecen distribuciones binarias está aquí

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

 0
Author: Haze,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-11-08 12:00:34

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á su hash clave

 0
Author: Dhananjay,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-30 06:08:56

Para los usuarios de Windows descargar open ssl desde el 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 la línea de comandos.

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

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

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

Tendrá que cerrar y abrir y símbolo del sistema que puede haber iniciado previamente para que pueda cargar la configuración de ruta actualizada.

Ahora ejecute este comando:

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

Debería ver la clave de desarrollador.

 0
Author: Oladipo Olasemo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-11-20 19:44:07

Esto funciona para mí:

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
Author: Manish,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-09 08:11:23

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

Solución garantizada : Necesita romper todo el comando en comandos separados y tiene que escribir la salida de cada ejecución en el archivo.

Puede tomar la ayuda desde el siguiente enlace :

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

Disfruta :)

 -1
Author: Nirav Shah,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-05-02 10:11:16