Encuentra el hash clave para una aplicación firmada

He firmado mi aplicación y exportado a una carpeta en mi escritorio llamada app en esta carpeta es mi aplicación en sí y el keystore. ¿Cómo puedo encontrar el hash clave que puedo copiar en la página de desarrolladores de Facebook. Tengo openssl instalado, pero parece que no puede generar la clave hash ive probado muchos otros temas en la pila y ninguno parecía ayudar, gracias

James

  1. Usted debe saber dónde está su archivo de almacén de claves. Para mí es C:\Users\Selvin\Desktop\selvin.kp
  2. Usted debe saber su alias en keystore. Para mi es selvin
  3. Usted debe saber el camino a keytool. C:\Program Files\Java\jdk1.6.0_22\bin\keytool.exe
  4. Usted debe saber el camino a openssl. C:\OpenSSL-Win32\bin\openssl.exe
  5. Usted debe saber la contraseña para keystore. Para mí es ***** jeje

Luego, debe llamar a:

C: \ Archivos de programa \ Java \ jdk1.6.0_22 \ bin \ keytool.exe "-exportcert -alias selvin -keystore c: \ users \ selvin \ desktop \ selvin.kp | C: \ OpenSSL-Win32 \ bin \ openssl sha1 -binary | C: \ OpenSSL-Win32 \ bin \ openssl base64

Reemplazar mi camino y alias con los adecuados.

Entonces deberías ver:

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

Introduzca su contraseña y debería obtener algo como esto: NfhDlIH7XWJzUZRjL+pZySrMX1Q=

EDITADO : NfgDlIG7XWJzUZRUL+bZySrMX1Q= <- es un mal hash. O tienes tanta suerte que tu llave hizo la misma colisión que

Error: keytool error: java.lang.Exception: El alias no existe

Si hash no funciona:

Primera llamada

C: \ Archivos de programa \ Java \ jdk1.6.0_22 \ bin \ keytool.exe "-exportcert -alias selvin -keystore c: \ users \ selvin \ desktop \ selvin.kp

Escriba la contraseña y lea el error

Si no recuerda su keytool error: java.lang.Exception: Alias <selvinn> does not exist alias keytool error: java.lang.Exception: Alias <selvinn> does not exist He usado selvinn para mostrar error.

Para obtener una lista de todas sus entradas / alias:

C: \ Archivos de programa \ Java \ jdk1.6.0_22 \ bin \ keytool.exe -list -keystore c: \ users \ selvin \ desktop \ selvin.kp

Segunda edición

Introduzca aquí la descripción de la imagen

Para aquellos que siguen luchando, he encontrado que estos pasos cuando se siguen correctamente sin duda funcionará, pero pueden ser muy difíciles de conseguir la primera vez, y de hecho he encontrado que a veces la conversión de base64 de la huella digital cuando se trata de algún alias "no funcionan (El hash se trunca por alguna razón). He escrito varios archivos por lotes que tirar la mayoría de estas instrucciones ya mencionadas juntos por lo que no descarta un problema allí.

Sin embargo, esencialmente la mayoría de la gente se cae en la etapa de openssl (o no puede encontrarla, no sabe cómo usarla, o la tubería de Windows no encadena correctamente la salida de la exportación SHA1 a la entrada de conversión de base64).

Para evitar esto se puede utilizar un método alternativo que es probablemente más fácil de seguir y entender. Esencialmente, lo que la API de facebook quiere es la representación de base64 (codificación) del hash SHA1 que se utiliza para imprimir con la huella digital su APK. Para hacer esto, sólo puede listar el keystore:

 "C:\Program Files\Java\JRE6\Bin\keytool.exe" -list -v -keystore "Path-to-your-keystore" -storepass "KeystorePassword" > somefile.txt 

Obviamente, usted necesita cambiar la ruta al ejecutable de keytool de acuerdo con su propia configuración y reemplazar "Path-to-your-keystore" y "KeystorePassword" con su ruta de acceso de keystore y contraseña! El resultado debe ser la creación de un archivo "sometext.txt" en la carpeta actual que se puede abrir en cualquier editor de texto. El archivo de texto mostrará todos los alias del almacén de claves 'y sus respectivos hashes MD5 y SHA1 como cadenas hexadecimales.

Ahora acaba de encontrar el alias utilizado para firmar su APK, copiar el hash SHA1, y utilizar cualquier hex en línea a base64 convertidor para convertirlo al formato de codificación base64 que requiere facebook. Usted puede encontrar un convertidor en línea googling "en línea hex a base64 convertidor". He estado usando esto como usted puede apenas copiar y pegar la secuencia derecha del archivo de texto en al cuadro proporcionado y quitará apenas los dos puntos que separan cada byte del hex.

Un punto final (algo obvio, pero ..) sólo copiar y pegar la cadena hexadecimal y NO el prefijo SHA1:!

Espero que esto ayude a alguien; Ciertamente funciona para mí!

Primero me gustaría agradecer a Selvin!

Esta respuesta es casi idéntica a la respuesta de Selvin, pero todavía me tomó 3 horas para conseguir que funcione: P por lo que un tutorial poco más para los newbs reales

Cómo obtener una hashKey desde un almacén de claves

  • Primero instale OpenSSL desde el código de google y colóquelo en el enlace de descarga de la carpeta C: \
  • Encontrar la ubicación del programa keytool (predeterminado en la carpeta java)
  • Find keystore location (hay un valor predeterminado de depuración)

Ubicación keytool C: \ Archivos de programa (x86) \ Java \ jdk1.xxx) \ bin \ keytool ubicación openssl C: \ OpenSSL-Win32 \ bin \ OpenSSL ubicación (depuración) keystore C: \ Users [usernamepc] .android \ debug. Almacén de claves

Abra cmd en windows (start-> run-> cmd) y navegue a la ubicación de keytool o copie pegue la siguiente cadena, tenga en cuenta que no puede usar ctrl + v sino mouseclick derecho

 cd c:\program files (x86)\java\jdk1.7.0_01\bin 

Cuando en el directorio correcto pegue esta cadena en la línea cmd:

 keytool.exe -exportcert -alias androiddebugkey -keystore c:\users\charx\.android\debug.keystore | C:\OpenSSL-Win32\bin\openssl sha1 -binary | C:\OpenSSL-Win32\bin\openssl base64 

"C: \ OpenSSL-Win32 \ bin \ openssl" es la ruta de acceso de opensssl.exe reemplazarlo con el camino de su openssl.exe

Asegúrese de que cambia el [usernamepc] de yourto el nombre de su PC como se puede ver en mi caso es charx. También el directorio para el java jdk xxxx depende de su versión.

Cmd debe mostrar hashkey

Hash para mi archivo de depuración es

 h1GdQbgB8b/liCG+acmZWkgIRHA= 

Una solución con Eclipse (para personas perezosas como yo).

Seleccione cualquier proyecto en Eclipse, Exportar – Aplicación de Android, ingrese su pase de clave, etc. y en la última página en la parte inferior verá MD5: …. SHA1: ….

Copie la cadena SHA1 y péguela en cualquier convertidor en línea HEX-Base64 (por ejemplo éste: http://tomeko.net/online_tools/hex_to_base64.php )

Felicitaciones! Usted tiene la clave hash necesaria para Facebook Dev Console.

No podía ser molestado con todo esto Veo lo que el sdk de facebook es realmente el envío de la exportación de mi aplicación firmada con el código de la temperatura en el lugar para mostrar facebook error.toString () en Authorize que da la clave de hash su busca entonces poner esto en mi Facebook Aplicación y bingo!

Las soluciones mencionadas anteriormente no funcionó para mí por alguna razón, pero fue capaz de generar keyhash con éxito. Estoy escribiendo el paso 10 más fácil para obtener keyhash de su apk firmado [apk firmado con keystore] :

  1. Copie el siguiente código en su activity [start Activity] .Este código debe estar contenido en su actividad para que pueda extraer el keyhash adecuado cuando se inicie la actividad de su apk firmado.

     private void getHashKey() { try { PackageInfo info = getPackageManager().getPackageInfo( getPackageName(), PackageManager.GET_SIGNATURES); for (Signature signature : info.signatures) { MessageDigest md = MessageDigest.getInstance("SHA"); md.update(signature.toByteArray()); Log.e("MY_KEY_HASH:", Base64.encodeToString(md.digest(), Base64.DEFAULT)); } } catch (NameNotFoundException e) { } catch (NoSuchAlgorithmException e) { } } 
  2. Su archivo AndroidManifest.xml debe tener el atributo android:allowBackup="true" en su etiqueta de aplicación.

  3. Exportar su apk firmado e instalar la aplicación en su teléfono móvil y, a continuación, conecte su teléfono en modo de depuración con la usb debugging on .

  4. Luego vaya a sdk\platform-tools

  5. Abra el símbolo del sistema y escriba los adb devices para ver si su dispositivo está conectado o no. Si el dispositivo no aparece en la lista, intente solucionarlo antes de continuar con el paso siguiente.

  6. A continuación, escriba adb logcat >"log.txt" . Su pantalla cmd tendrá gusto colgado. No se preocupe. Su perfectamente normal como todo el logcat se está escribiendo en log.txt .

  7. Ejecute su aplicación y espero que cuando usted piensa que la función getHashKey() se ejecuta, a continuación, presione ctrl+c en el símbolo del sistema para finalizar la escritura del archivo de registro.

  8. Ahora el símbolo del sistema volverá a responder de nuevo. Ahora entra en tu directorio sdk\platform-tools y verás que se ha creado un archivo log.txt que contiene registros.

  9. Ahora texteditor en un texteditor y busca MY_KEY_HASH: "———– Tu keyhash ——-"

  10. Copiar esto en su FB account o dondequiera que lo necesite y luego hacer otra construcción en la que la función android:allowBackup="false" y getHashKey() se elimina.

Espero que esto ayudó a todos 🙂

  • ERROR: 'keytool' no se reconoce como un comando interno o externo, un programa operativo o un archivo por lotes
  • AndroidDebugKey Keystore fue manipulado, o la contraseña era incorrecta
  • ¿Qué debo usar para "Distinguished Name" en nuestro Keystore para Android Market
  • Keytool no pide contraseña (usando Facebook lib con android)
  • Cambio de contraseña de keystore de Android
  • Android Development: Keytool, la creación de un almacén de claves?
  • Android - el apk debe estar firmado con los mismos certificados que la versión anterior
  • ¿Cómo puedo generar un "Keystore" para Google Play?
  • No puedo encontrar el keytool de Android
  • La carpeta ".android" y el archivo "debug.keystore" faltan
  • Acceso denegado al crear keystore para la aplicación de Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.