¿Cómo obtener la huella digital del certificado de firma (SHA1) para OAuth 2.0 en Android?

154

Estoy tratando de registrar mi aplicación de Android siguiendo los pasos en https://developers.google.com/console/help/#installed_applications que me lleva a seguir http://developer.android.com/tools/publishing/app- firma.html .

Sin embargo, no estoy seguro de cómo obtener la huella digital del certificado de firma (SHA1).

Primero utilicé el complemento ADT de Eclipse para exportar y crear el almacén de claves / clave. Luego, intenté hacerlo keytool -list keystore mykeystore.keystorey me da una huella digital de certificado MD5. ¿Debo rehacer la firma (lo que significa que no puedo usar el asistente de exportación de eclipse)?

¿Puedo usar un certificado de depuración primero?

Alex
fuente
Antes de exportar / cargar su aplicación, use la respuesta del usuario 2453771. Después de exportar / cargar, use la respuesta de frederick nyawaya. Recuerda eso y ahórrate unas horas de dolor.
SmulianJulian
cómo generar el lanzamiento del almacén de claves apk usando el terminal de Linux
Manish
1
La forma más fácil de obtener SHA-1 para la versión y el modo de depuración de Android Studio Gradle. Mira esto
Naeem Ibrahim

Respuestas:

174

Inicie un proceso de exportación para crear un apk para su aplicación y use su clave de producción. La última página muestra las huellas digitales de sus certificados SHA1 y MD5.enter image description here

Frederick Nyawaya
fuente
2
MD5 aparece en logcat ahora (no en la ventana durante la creación).
Herramienta del
44
Realice el proceso de exportación dos veces. Se mostrará en el segundo turno.
keybee
¿Hay alguna manera de crear uno nuevo con este método? Intenté hacer esto, pero mi antiguo archivo de almacén de claves está allí, pero creo que es el incorrecto (necesito un certificado de depuración, no uno de lanzamiento), además olvidé la contraseña. > _ <Gracias si tienes una propina.
Azurespot
NOTA: No tiene que exportar completamente un .apk. Puede cancelar en este punto después de copiar el SHA1 para evitar crear .apks innecesarios.
GraSim
139

Sé que esta pregunta ha sido respondida, pero así es como encontré mi firma para el almacén de claves predeterminado. En Eclipse, si vas a Windows -> Preferencias -> Android -> Build

ingrese la descripción de la imagen aquí

Mella
fuente
55
Esta debería ser la respuesta aceptada, ya que es la forma más fácil.
Mustafa
3
para el almacén de claves predeterminado / de depuración, no el almacén de claves de producción
Frederick Nyawaya
3
Chicos, por favor noten que la respuesta segura es @frederick nyawaya's. Si su aplicación tenía diferentes almacenes de claves de compilación y publicación (que es la mayoría de las veces, el mapa NO funcionará en sus clientes. Y Dios sabe cuándo lo sabrá, ya que funciona bien en su propia computadora. Tenga cuidado. Esto es fácil, pero es probable que termine teniendo un servicio de mapas que no funciona en sus dispositivos cliente.
Tina
92

Creo que esto funcionará perfectamente. Yo usé lo mismo:

Para Android Studio:

  1. Haga clic en Compilar > Generar APK firmado .
  2. Recibirá un cuadro de mensaje, simplemente haga clic en Aceptar.
  3. Ahora habrá otra ventana, solo copie la ruta de acceso clave .
  4. Ahora abra un símbolo del sistema y vaya a C: \ Archivos de programa \ Java \ jdk1.6.0_39 \ bin> (o cualquier versión de jdk instalada).
  5. Escriba keytool -list -v -keystore y luego pegue la ruta del almacén de claves (por ejemplo, C: \ Archivos de programa \ Java \ jdk1.6.0_39 \ bin> keytool -list -v -keystore "E: \ My Projects \ Android \ android \ android studio \ apks firmados \ Hello World \ HelloWorld.jks ").
  6. Ahora le pedirá a Password Store Store Password , proporcione la suya y presione Enterpara obtener sus claves de certificado SHA1 y MD5.
Ravi
fuente
archivo de almacén de claves creado a través de otra máquina puedo conseguir con SH1 mismo archivo almacén de claves con el procedimiento anterior en diferentes machinge
Mahendra Dabi
Muchas gracias
Hiren
74

Si está utilizando Mac o incluso Linux, simplemente copie y pegue esto en la aplicación Terminal y obtendrá la clave SHA1 de inmediato. No hay necesidad de cambiar nada.

 keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

Salida de ejemplo:

Alias name: androiddebugkey
Creation date: 17 Feb 12
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Android Debug, O=Android, C=US
Issuer: CN=Android Debug, O=Android, C=US
Serial number: 4f3dfc69
Valid from: Fri Feb 17 15:06:17 SGT 2012 until: Sun Feb 09 15:06:17 SGT 2042
Certificate fingerprints:
     MD5:  11:10:11:11:11:11:11:11:11:11:11:11:11:11:11:11
     SHA1: 11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:01:11
     Signature algorithm name: SHA1withRSA
     Version: 3
Randy Sugianto 'Yuku'
fuente
@yuku ejemplo por favor. /home/desktop/././. , abc.jks, qué contraseña n todas, ¿necesitamos todos estos detalles?
Prabs
Gracias. Solo que esta es la forma más fácil.
Sayka
De hecho me salvaste el día. Gracias una tonelada.
Karan Nagpal
keytool -list -v -keystore my-release-key.keystore
Snow Bases
El almacén de claves JKS utiliza un formato propietario. Se recomienda migrar a PKCS12, que es un formato estándar de la industria que utiliza "keytool -importkeystore -srckeystore <use-existente-key-store path> / <variant-name> .keystore -destkeystore <new-key-store path> / < nombre-variante> .keystore -deststoretype pkcs12 ".
Arpit J.
68

use esto en la línea de comando

c:\Program Files\Java\jdk1.6.25\bin>keytool -list -v -keystore c:\you_key_here.key
Dan Jurgen
fuente
1
Esto me pareció la forma más simple y estándar, ya que cada vez más personas migran a IntelliJ / Studio y no tienen acceso a la facilidad de Eclipse / ADT. ¡¡Salud!!
Himadri Pant
¿Por qué me pide contraseña?
Abhijit Chakra
Tengo acceso denegado.
sudhakar phad
59

Abra la terminal (en Unix , en MAC ), ( cmden Windows ) y cden esta ruta (su java):

C:\Program Files\Java\jdk1.6.0_43\bin>

Ejecute este comando:

keytool -list -v -keystore C:\Users\leon\.android\debug.keystore -alias androiddebugkey -storepass android -keypass android

Simplemente cambie la ruta debug.keystorey obtendrá las huellas digitales MD5 y SHA-1.

gurkan
fuente
40
keytool -list -v -keystore "keyStoreName"

Ejecute este comando desde el directorio donde existe el almacén de claves de su aplicación.

Manmohan Soni
fuente
Esto se puede usar para obtener el SHA1 para su aplicación cliente que exportará y publicará. Probablemente sea diferente del que ve en eclipse, que es un almacén de claves de depuración.
dannyhan12
29

En Android Studio, sigue estos pasos:

  1. Haga clic en el menú de propiedades de Gradle en el lado derecho de su IDE de estudio de Android.
  2. Expande el árbol de tareas.
  3. Haga clic en signatureReport. Puede ver su SHA1 en la consola inferior

ingrese la descripción de la imagen aquí

Harunduet
fuente
13

Vea si desea usar Google Mapen ese momento necesita MD5huella digital para generarapi kay para usar el mapa de Google en su aplicación de Android.

El comando Keytool generó MD5huella digital si la usa JDK 1.6y genera SHA1huella digital si la usa JDK 1.7.

Entonces, si quieres firmar tu solicitud de publicación, lee esto .

Y si quieres usar google-maplee esto .

Akshay
fuente
Gracias por la repetición Akshay. Aparentemente necesitaba agregar -v a mi comando keytool para mostrar las otras huellas dactilares del certificado. Además, aparentemente puedo usar un certificado de depuración para crear una ID de cliente.
Alex
1
Principalmente. Resolví mi problema de crear una ID de cliente. Sin embargo, soy nuevo en OAuth en general y no cómo funcionan los certificados y las huellas digitales. ¿Supongo que un certificado puede tener una huella digital MD5 y SHA1? Al menos eso es lo que obtengo cuando hago el keytool -list -v etccomando
Alex
12

Si está utilizando IntelliJ (12+?), Vaya al menú Construir / Generar API firmada

Después de llenar una ventana emergente, obtenga los datos en el campo "ruta del almacén de claves" (por ejemplo, C: \ Users \ user \ Documents \ store \ store)

Y ejecutar en una línea de comando:

>keytool -list -v -keystore "C:\Users\user\Documents\store\store"

....
         MD5: 11:C5:09:73:50:A4:E5:71:A2:26:13:E0:7B:CD:DD:6B
    -->  SHA1: 07:0B:0E:E8:F7:22:59:72:6A:1C:68:05:05:CF:2E:6F:59:43:48:99
         SHA256: E6:CE:DA:37:C1:18:43:C1:A3:F0:9E:8F:1A:C2:69:AF:E6:41:F7:C0:18:
1D:1D:55:5D:F0:52:6C:EE:77:84:A7
...

Buena suerte

usuario9869932
fuente
12

Si alguien usa el estudio de Android ...

haga clic en: Crear> Generar sesión iniciada en APK Crear una nueva clave: esto generará archivos ".jks"

Use el siguiente comando para leer los datos (SHA1 y otra información):

$ keytool -list -v -keystore filename.jks

Vinod Joshi
fuente
consejo adicional : comando para generar Key Hash para Facebook$keytool -keystore filename.jks | openssl sha1 -binary | openssl base64
MuhFred
4

Para aquellos que usan OpenSSL, pueden recuperar la huella digital SHA1 de esta manera:

OpenSSL> dgst -sha1 my-release-key.keystore

Lo que daría como resultado el siguiente resultado:

ingrese la descripción de la imagen aquí

TaeKwonJoe
fuente
4

Si estás usando Android Studio. No es necesario que genere una huella digital SHA1 utilizando el indicador cmd. Solo necesita crear un proyecto con Maps Activity predeterminado de Android Studio. En el proyecto puede obtener la huella digital en google_maps_api.xml en la carpeta Valores. Espero que esto te ayudará. :)

ingrese la descripción de la imagen aquí

Poras Bhardwaj
fuente
4

Aquí está mi solución fácil para esto:

Haga clic en Gradle botón, puede encontrar en la parte superior derecha. verá todos los archivos gradle. Ahora ve a Android y haz doble clic en signatureReport. Una vez que finaliza la construcción de gradle, verá la clave SHA. Consulte las imágenes a continuación para obtener una guía paso a paso.

Una vez que haga clic en Gradle, verifique las imágenes a continuación. Espero que esto ayude a alguien.

PASO 1:

Imagen Paso uno

PASO 2:

Imagen Paso dos

basavaraj_S
fuente
3

Si estás usando Android Studio. Puede obtener rápidamente la huella digital del certificado SHA1 (depurar, liberar ... ¡ todos los tipos de compilación !) A través de Gradle Tasks :

firmaReporte

SHA1 se muestra en los registros de mensajes

El complemento de Android (configurado en la aplicación gradle) crea un modo de depuración por defecto.

com.android.application

Ruta del archivo al almacén de claves:

HOME / .android / debug.keystore

Recomiendo adjuntar debug.keystore a build.gradle. Para hacer esto, coloque un archivo debug.keystore en una carpeta de la aplicación y luego agregue SigningConfigs en la aplicación gradle:

apply plugin: 'com.android.application'

    android {
        ................
        signingConfigs {
            debug {
                storeFile file("../app/debug.keystore")
                storePassword "android"
                keyAlias "androiddebugkey"
                keyPassword "android"
            }
            release {
                storeFile file("../app/debug.keystore")
                storePassword "android"
                keyAlias "androiddebugkey"
                keyPassword "android"
            }
        }    
        ........
    }

Extra: si desea crear para el lanzamiento, coloque un archivo release.keystore en una carpeta de la aplicación. (Este ejemplo usa el mismo debug.keystore)

SergioLucas
fuente
3

Pruebe este: Windows ---- preferencias ---- Android - compilación --- copia del código sh1 desde aquí

Ravind Maurya
fuente
3

Era muy confuso la primera vez, pero te propongo una solución de trabajo final para Windows:

1) Abra cmd y vaya a su directorio Java / jdk / bin (solo presione cd ..para retroceder una carpeta y cd NAME_FOLDERavanzar una carpeta), en mi caso, carpeta final:C:\Program Files\Java\jdk1.8.0_73\bin> ingrese la descripción de la imagen aquí

2) Ahora escriba este comando keytool -list -v -keystore C:\Users\YOUR_WINDOWS_USER\.android\debug.keystore -alias androiddebugkey -storepass android -keypass android

Como resultado, debes obtener algo como esto: ingrese la descripción de la imagen aquí

Choletski
fuente
2

Creo que esto funcionará perfectamente. Yo usé lo mismo:

Para Android Studio:

Haga clic en Compilar> Generar APK firmado. Recibirá un cuadro de mensaje, simplemente haga clic en Aceptar.

Ahora habrá otra ventana, solo copie la Ruta de la Tienda de Claves.

Ahora abra un símbolo del sistema y vaya a C: \ Archivos de programa \ Java \ jdk1.6.0_39 \ bin> (o cualquier versión de jdk instalada).

Escriba keytool -list -v -keystore y luego pegue la ruta de Key Store (por ejemplo, C: \ Archivos de programa \ Java \ jdk1.6.0_39 \ bin> keytool -list -v -keystore "E: \ My Projects \ Android \ android \ android studio \ apks firmados \ Hello World \ HelloWorld.jks ").

Ahora le pedirá a Key Store Store Password, proporcione la suya y presione Enter para obtener sus claves de certificado SHA1 y MD5.

Ahora agregue esta clave SHA1 a la consola de desarrolladores de Google en la pestaña de credenciales y también cambie las variantes de compilación en Android Studio al modo de lanzamiento.

Rishab Jain
fuente
no se puede ingresar la contraseña del almacén de claves que escribo pero la contraseña no se ingresó en el símbolo del sistema
Mahendra Dabi
la contraseña no es visible, solo escriba su contraseña correctamente y presione Intro para obtener sus claves
Rishab Jain
gracias ingresé una contraseña incorrecta ahora es trabajo gracias chicos
Mahendra Dabi
1

Para aquellos en mac que buscan keytool. sigue estos pasos:

En primer lugar, asegúrese de instalar Java JDK http://docs.oracle.com/javase/7/docs/webnotes/install/mac/mac-jdk.html

Luego escriba esto en el símbolo del sistema:

/usr/libexec/java_home -v 1.7

escupirá algo como:

/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home

keytool se encuentra en el mismo directorio que javac. es decir:

/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/bin

Desde el directorio bin puede usar keytool.

wired00
fuente
1

Si está en Mac / Linux, puede obtener la huella digital SHA1 escribiendo la siguiente línea en el terminal:

keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

Hay 2 cosas posibles después de esto

  1. Te pedirá la contraseña

    Sólo tipo

androide

y presione enter, puede encontrar la tecla SHA1 en la salida que se muestra a continuación.

  1. Le pedirá que descargue un programa adecuado (y se le dará una lista)

    Solo escribe siguiente en la terminal

sudo apt install openjdk-8-jre-headless

y luego vuelva a ejecutar lo siguiente en la terminal: keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

Esta vez, se lo guiará al paso 1, donde debe ingresar la contraseña como

androide

y obtendrá su huella digital SHA1 a continuación en la salida.

Akshay Chopra
fuente
0

Usando portecle :

  • Archivo> Abrir archivo de almacén de claves
  • Ingrese la contraseña del almacén de claves
  • Haga clic derecho en el nombre del alias> Detalles del certificado> Huella digital SHA-1
Radi
fuente
0

La forma más fácil de obtener SHA-1 para la versión y el modo de depuración de Android Studio Gradle. Mira esto

Naeem Ibrahim
fuente
0

Quería publicar un aviso para aquellos que tienen el mismo problema que yo. Seguí los pasos para generar mi depuración SHA-1 y mi versión SHA-1. Intentaba conectar la API de inicio de sesión de Google con mi aplicación.

Me encontré con el problema de que el .apk de depuración funcionaría bien, se conectaría y autenticaría con Google Sign-In. Mi versión .apk también funcionaría cuando se instalara manualmente en el teléfono. Cuando publiqué mi versión .apk en Google Play Store, mi inicio de sesión de Google no se autenticó y ¡tuve un problema!

Durante mucho tiempo no pude resolverlo, pero descubrí que mi aplicación estaba firmada por google, es decir, el mensaje en la parte superior de la consola del desarrollador mostraba: Google Play App Signing está habilitado para esta aplicación.

Fui a mi pestaña Administración de versiones, luego bajé a Firma de aplicaciones y encontré el SHA-1 allí. Después de agregar esto a mi código y en la "consola firebase" que estaba usando como back-end para el inicio de sesión de Google, todo parecía funcionar. Parece que mi almacén de claves de lanzamiento fue reemplazado por el certificado firmado de Google ... No estoy realmente seguro de si esto es lo que estaba sucediendo, pero resolvió mi problema y permitió que mi apk de lanzamiento de Google Play Store se autenticara correctamente con el signo de Google ¡en!

Brandon
fuente
0

Solución paso-a-paso:

  1. Abra su símbolo del sistema o Terminal para Mac
  2. Cambie el directorio al directorio de la ubicación del archivo keytool. Cambiar el directorio mediante el comando cd <directory path>. (Nota: si algún nombre de directorio tiene espacio, agregue \entre las dos palabras. Ejemplo cd /Applications/Android\ Studio.app//Contents/jre/jdk/Contents/Home/bin/)

    • Para encontrar la ubicación de su herramienta clave, vaya al estudio de Android ... abra su proyecto. E ir a

    • Archivo> Estructura del proyecto> Ubicación del SDK ... y busque la ubicación del JDK.

  3. Ejecute keytool con este comando: keytool -list -v –keystore <your jks file path>(Nota: si algún nombre de directorio tiene espacio, agregue \ entre las dos palabras. Ejemplo keytool -list -v -keystore /Users/username/Desktop/tasmiah\ mobile/v3/jordanos.jks)

  4. El comando le solicita que ingrese la contraseña ... así que ingrese su contraseña ... luego obtendrá el resultado

wael
fuente
0

Aquí hay una herramienta para codificadores perezosos:

1 agregar dependencia:

compile 'com.vk:androidsdk:1.6.9'

2 agregue las siguientes líneas en algún lugar de su actividad / aplicación:

String[] fingerprints = VKUtil.getCertificateFingerprint(this, getPackageName()); 
Log.d("SHA1", fingerprints[0]);

3 Abra logcat y capture el mensaje.

4 Beneficio!

Aleksandr
fuente
0
  1. Abra su símbolo del sistema
  2. Navegue el directorio de trabajo a 1.8.0 / bin
  3. pegar keytool -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore
  4. Presiona enter si te pide una contraseña
Sandun Sameera
fuente
0

Si desea obtener la clave fingerprint-sha1 del archivo de firma keystore.jks Ejecute el siguiente comando desde la terminal:

keytool -list -v -keystore <.../path/keystore.jks>

Ejemplo

keytool -list -v -keystore /Users/Home/Projects/Keystore/myApp_keystore.jks
Enter keystore password: 

Keystore type: JKS
Keystore provider: SUN

Your keystore contains 1 entry

Alias name:myApp_alias
Owner: CN=xxx, OU=xxx Dev, O=ZZZ, L=Dhaka, ST=Dhaka, C=BD
..........


Certificate fingerprints:
MD5:  12:10:11:12:11:11:11:11:11:11:33:11:11:11:11:11
SHA1: 11:44:11:11:55:11:17:11:11:66:11:11:88:11:11:77:11:11:01:11
.....................
samsul
fuente
0

Haga clic en Gradle desde el lado derecho del menú Luego haga clic en: aplicación Luego haga clic en la carpeta de Android Luego, el nombre del archivo SigningReport existe allí Haga doble clic en eso. Comenzará a ejecutarse y en un momento le mostrará el código SHA-1. Simplemente copie el código. Y pégalo donde lo necesites

Informe de firma resaltado en imagen

Uzair
fuente