your the studio stored solucion not invalid hashes generar does desarrollo clave app android keystore keytool hashtag

the - key hashes android studio



Encuentra el hash clave para una aplicaciĆ³n firmada (7)

Firmé mi aplicación y la exporté a una carpeta en mi escritorio llamada aplicación en esta carpeta, es mi aplicación y el almacén de claves. ¿Cómo puedo encontrar el hash clave que puedo copiar en la página de desarrolladores de Facebook? He instalado openssl, pero parece que no puedo generar el hash clave. He probado muchos otros subprocesos en la pila y ninguno ha ayudado, 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 el almacén de claves. 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 el almacén de claves. Para mi es ***** jeje

Entonces, deberías llamar:

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:

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

EDITADO : NfgDlIG7XWJzUZRUL+bZySrMX1Q= <- es un hash mal. O tuviste 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 el keytool error: java.lang.Exception: Alias <selvinn> does not exist su alias keytool error: java.lang.Exception: Alias <selvinn> does not exist utilicé selvinn para mostrar el 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


Las soluciones mencionadas anteriormente no funcionaron para mí por alguna razón, pero pude generar exitosamente keyhash. Estoy escribiendo los 10 pasos más fáciles para obtener el "keyhash" de su apk firmado [apk firmado con el almacén de claves] :

  1. Copie el código a continuación en su activity [start Activity] . Este código debe estar contenido en su actividad para que pueda extraer el keyhash apropiado cuando comience 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. Exporte su apk firmado e instale la aplicación en su teléfono móvil y luego conecte su teléfono en modo de depuración con la usb debugging on .

  4. Luego ve a sdk/platform-tools

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

  6. Luego escriba adb logcat >"log.txt" . Su pantalla cmd gustará colgado. No se asuste. Es perfectamente normal ya que todo el logcat se está escribiendo en log.txt .

  7. Ejecute su aplicación y, con suerte, cuando piense que la función getHashKey() se ejecute, 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 ser receptivo. Ahora vaya a su directorio sdk/platform-tools y verá 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. Copie esto en su FB account o donde lo necesite y luego haga otra compilación en la que se android:allowBackup="false" el android:allowBackup="false" y la función getHashKey() .

Espero que esto haya ayudado a todos :)


No podría molestarme con todo esto. Veo lo que Facebook sdk está enviando al exportar mi aplicación firmada con el código temporal en su lugar para mostrar el error de facebook. ToString () en Autorizar, lo que le da a la tecla hash su búsqueda. Luego puse esto en mi Facebook de la aplicación y el bingo!


Para aquellos que todavía tienen dificultades, he encontrado que estos pasos cuando se siguen correctamente ciertamente funcionarán, pero pueden ser bastante difíciles de hacer bien la primera vez, y en realidad he encontrado que a veces la conversión base64 de la huella dactilar cuando se trata de un alias "no funciona (El hash se trunca por alguna razón). He escrito varios archivos por lotes que reúnen la mayoría de estas instrucciones que ya se han mencionado, por lo que no descarto un problema allí.

Sin embargo, esencialmente la mayoría de las personas se caen en la etapa openssl (o bien no pueden encontrarlo, no saben cómo usarlo, o las tuberías de Windows no encadenan correctamente la salida de la exportación SHA1 a la entrada de conversión base64).

Para solucionar esto, puede utilizar un método alternativo que probablemente sea más fácil de seguir y entender. Esencialmente, lo que quiere la API de Facebook es la representación (codificación) base64 del hash SHA1 utilizado para la huella digital de su APK. Para hacer esto puedes simplemente listar el almacén de claves:

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

Obviamente, debe 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 keystore y contraseña. El resultado debe ser la creación de un archivo "sometext.txt" en la carpeta actual que puede abrir en cualquier editor de texto. El archivo de texto mostrará una lista de todos los alias del almacén de claves y sus respectivos hashes MD5 y SHA1 como cadenas hexadecimales.

Ahora simplemente encuentre el alias utilizado para firmar su APK, copie el hash SHA1 y use cualquier convertidor de hex a base64 en línea para convertirlo al formato de codificación base64 que requiere facebook. Puede encontrar un convertidor en línea al buscar en Google "convertidor de hex a base64 en línea". He estado usando este ya que solo puedes copiar y pegar la cadena desde el archivo de texto en el cuadro provisto y solo eliminará los dos puntos que separan cada byte hexadecimal.

Un punto final (algo obvio pero ...) solo copia y pega la cadena hexadecimal y NO el SHA1: ¡prefijo!

Espero que esto ayude a alguien; ¡ciertamente funciona para mi!


Primero quisiera agradecer a Selvin!

Esta respuesta es casi idéntica a la de Selvin, pero aún me tomó 3 horas para que funcionara: P, un poco más de tutorial para los newbs reales.

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

  • primero instala OpenSSL desde el código de Google y colócalo en el enlace de descarga de la carpeta C: /
  • buscar la ubicación del programa keytool (por defecto en la carpeta java)
  • encontrar la ubicación del almacén de claves (hay un valor predeterminado de depuración)

location keytool C: / Archivos de programa (x86) / Java / jdk1.xxx) / bin / keytool location openssl C: / OpenSSL-Win32 / bin / OpenSSL ubicación (debug) almacén de claves C: / Users [usernamepc] .android / debug. almacén de claves

abra cmd en windows (inicio-> ejecutar-> cmd) y navegue hasta la ubicación de la herramienta de teclado o copie y pegue la siguiente cadena, tenga en cuenta que no puede usar ctrl + v pero haga clic con el botón derecho del mouse

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

cuando esté 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. Reemplácelo con la ruta de su openssl.exe.

asegúrese de cambiar el [nombre de usuario] de su al nombre de su PC como puede ver en mi caso es charx. También el directorio para el java jdk xxxx depende de su versión.

cmd debería mostrar hashkey

la clave hash para mi archivo de depuración es

h1GdQbgB8b/liCG+acmZWkgIRHA=


Si usa sus alies, use este comando para encontrar alies del almacén de claves.

keytool -list -v -keystore keystore.jks | findstr "Creación de alias"


Una solución con Eclipse (para gente perezosa como yo).

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

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

Felicidades Tienes la clave hash necesaria para la consola de desarrollo de Facebook.