Come ottenere l'impronta digitale del certificato di firma (SHA1) per OAuth 2.0 su Android?


154

Sto cercando di registrare la mia app Android seguendo i passaggi in https://developers.google.com/console/help/#installed_applications che mi porta a seguire http://developer.android.com/tools/publishing/app- signing.html .

Tuttavia, non sono sicuro di come ottenere l'impronta digitale del certificato di firma (SHA1).

Ho usato il plug-in ADT Eclipse per esportare e creare il keystore / chiave. Quindi, ho provato a farlo keytool -list keystore mykeystore.keystoree mi dà un'impronta digitale del certificato MD5. Devo ripetere la firma (significa che non posso usare la procedura guidata di esportazione eclipse)?

Posso usare prima un certificato di debug?


Prima di esportare / caricare la tua app usa la risposta di user2453771. Dopo aver esportato / caricato, usa la risposta di Federico Nyawaya. Ricordalo e risparmia qualche ora di dolore.
SmulianJulian

come generare il keystore apk di rilascio usando il terminale linux
Manish

1
Il modo più semplice per ottenere SHA-1 per la modalità di rilascio e debug Android Studio Gradle.
Dai un'occhiata a

Risposte:


174

Avvia un processo di esportazione per creare un apk per la tua app e utilizzare la chiave di produzione. L'ultima pagina mostra le impronte digitali dei certificati SHA1 e MD5inserisci qui la descrizione dell'immagine


2
MD5 ora appare in logcat (non nella finestra durante la creazione).
Strumento

4
Esegui il processo di esportazione due volte. Verrà mostrato al secondo turno.
keybee,

C'è un modo per crearne uno nuovo usando questo metodo? Ho provato a farlo, ma il mio vecchio file keystore è lì, ma penso che sia quello sbagliato (ho bisogno di un certificato di debug, non di un rilascio), inoltre ho dimenticato la password. > _ <Grazie se hai un suggerimento.
Azurespot,

NOTA: non è necessario esportare completamente un .apk. È possibile annullare a questo punto dopo aver copiato SHA1 per evitare la creazione di .apks non necessari.
GraSim,

139

So che questa domanda ha avuto risposta ma è così che ho trovato la mia firma per il keystore predefinito. In Eclipse, se vai su Windows -> Preferenze -> Android -> Crea

inserisci qui la descrizione dell'immagine


5
Questa dovrebbe essere la risposta accettata, poiché è il modo più semplice.
Mustafa,

3
per il keystore predefinito / di debug, non per il keystore di produzione
Frederick Nyawaya,

3
Ragazzi, notate che la risposta sicura è di @frederick nyawaya. Se la tua app aveva build e pubblicazione di keystore diversi (come spesso accade, la mappa NON funzionerà sui tuoi clienti. E Dio sa quando lo saprai poiché funziona bene sul tuo computer. Fai attenzione. Questo è facile ma probabilmente finirai per avere un servizio cartografico non funzionante sui tuoi dispositivi client.
Tina

92

Penso che funzionerà perfettamente. Ho usato lo stesso:

Per Android Studio:

  1. Fai clic su Genera > Genera APK firmato .
  2. Verrà visualizzata una finestra di messaggio, basta fare clic su OK.
  3. Ora ci sarà un'altra finestra per copiare il Key Store Path .
  4. Ora apri un prompt dei comandi e vai su C: \ Programmi \ Java \ jdk1.6.0_39 \ bin> (o qualsiasi versione jdk installata).
  5. Digitare keytool -list -v -keystore e quindi incollare il percorso dell'archivio chiavi (es. C: \ Programmi \ Java \ jdk1.6.0_39 \ bin> keytool -list -v -keystore "E: \ I miei progetti \ Android \ android studio \ apks firmati \ Hello World \ HelloWorld.jks ").
  6. Ora richiederà la password dell'archivio chiavi , fornisci la tua e premi Enterper ottenere le chiavi di certificato SHA1 e MD5.

file keystore creato tramite un'altra macchina posso ottenere sh1 con lo stesso file keystore con la procedura sopra su macchina diversa
Mahendra Dabi

Grazie mille
Hiren,

74

Se stai usando Mac o anche Linux, copialo e incollalo sull'applicazione Terminale e otterrai immediatamente la chiave SHA1. Non c'è bisogno di cambiare nulla.

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

Esempio di output:

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

@yuku esempio per favore. /home/desktop/././. , abc.jks, quale password n ​​tutto, abbiamo bisogno di tutti questi dettagli ??
Prabs,

Grazie. Solo questo è il modo più semplice.
Sayka,

Mi hai davvero salvato la giornata. Grazie mille.
Karan Nagpal,

keytool -list -v -keystore my-release-key.keystore
Snow Bases

Il keystore JKS utilizza un formato proprietario. Si consiglia di migrare a PKCS12, che è un formato standard del settore che utilizza "keytool -importkeystore -srckeystore <percorso percorso archivio chiavi esistente> / <nome-variante> .keystore -destkeystore <percorso nuovo archivio chiavi> / < nome-variante> .keystore -deststoretype pkcs12 ".
Arpit J.,

68

usalo nella riga di comando

c:\Program Files\Java\jdk1.6.25\bin>keytool -list -v -keystore c:\you_key_here.key

1
questo mi è sembrato il modo più semplice e tuttavia standard in quanto sempre più persone migrano verso IntelliJ / Studio e non hanno accesso alla facilità di Eclipse / ADT. Saluti amico !!
Himadri Pant,

Perché mi sta chiedendo la password
Abhijit Chakra,

ho ricevuto, accesso negato.!
sudhakar phad,

59

Apri il terminale (in Unix , in MAC ), ( cmdin Windows ) e cdverso questo (il tuo java) percorso:

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

Esegui questo comando:

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

Basta cambiare il percorso debug.keystoree otterrai entrambe le impronte digitali MD5 e SHA-1.


40
keytool -list -v -keystore "keyStoreName"

Esegui questo comando dalla directory in cui esiste il keystore della tua app.


Questo può essere usato per ottenere SHA1 per l'app client che esporterai e pubblicherai. Questo è probabilmente diverso da quello che vedi in eclipse, che è un keystore di debug.
dannyhan12,

29

In Android Studio, attenersi alla seguente procedura:

  1. Fai clic sul menu delle proprietà Gradle sul lato destro dell'IDE Android Studio.
  2. Espandere Albero delle attività.
  3. Fai clic su Firma Segnala Puoi vedere il tuo SHA1 nella console in basso

inserisci qui la descrizione dell'immagine


13

Vedi se vuoi usare Google Mapin quel momento hai bisogno MD5dell'impronta digitale per la generazione api kayper l'utilizzo di google map nella tua applicazione Android.

Il comando Keytool ha generato l' MD5impronta digitale se si utilizza JDK 1.6e genera l' SHA1impronta digitale se si utilizza JDK 1.7.

Quindi il fatto è che se vuoi firmare la tua domanda di pubblicazione, leggi questo .

E se vuoi usare google-mapleggi questo .


Grazie per il replay Akshay. Apparentemente avevo bisogno di aggiungere -v al mio comando keytool per mostrare le altre impronte digitali del certificato. Inoltre, a quanto pare posso usare un certificato di debug per creare un ID client.
Alex

1
Soprattutto. Ho risolto il mio problema di creazione di un ID cliente. Tuttavia, sono nuovo di OAuth in generale e non di come funzionano i certificati e le impronte digitali. Immagino che un certificato possa avere sia un'impronta digitale MD5 che SHA1? Almeno questo è quello che ottengo quando eseguo il keytool -list -v etccomando
Alex

12

Se si utilizza IntelliJ (12+?), Andare al menu Crea / Genera API firmata

Dopo aver riempito un popup, ottenere i dati nel campo "percorso keystore" (ad es. C: \ Users \ user \ Documents \ store \ store)

Ed eseguire in una riga di 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
...

In bocca al lupo


12

Se qualcuno utilizza Android Studio ...

fai clic su: Crea> Genera APK con accesso creato Crea una nuova chiave: questo genererà file ".jks"

Utilizzare il comando seguente per leggere i dati (SHA1 e altre informazioni):

$ keytool -list -v -keystore nomefile.jks


consiglio extra : comando per generare Key Hash per Facebook$keytool -keystore filename.jks | openssl sha1 -binary | openssl base64
MuhFred

4

Per coloro che utilizzano OpenSSL è possibile recuperare l'impronta digitale SHA1 in questo modo:

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

Ciò comporterebbe il seguente output:

inserisci qui la descrizione dell'immagine


4

Se stai usando Android Studio. Non è necessario generare un'impronta digitale SHA1 utilizzando il prompt cmd. Devi solo creare un progetto con l'attività di Maps predefinita di Android Studio. Nel progetto puoi ottenere l'impronta digitale in google_maps_api.xml nella cartella Valori. Spero che questo ti possa aiutare. :)

inserisci qui la descrizione dell'immagine


4

Ecco la mia soluzione semplice per questo:

Fai clic sul Gradlepulsante, puoi trovarlo nella parte in alto a destra. vedrai tutti i file gradle. Ora vai su Android e fai doppio clic su SignReport. Una volta terminata la compilazione del gradle, viene visualizzata la chiave SHA. Controlla le immagini seguenti per la guida passo passo.

Una volta cliccato su Gradle controlla le immagini qui sotto. Spero che questo aiuti qualcuno.

PASSO 1:

Immagine Fase 1

PASSO 2:

Immagine Fase due


3

Se stai usando Android Studio. È possibile ottenere rapidamente l' impronta digitale del certificato SHA1 (debug, rilascio ... tutti i tipi di build !!) tramite le attività Gradle :

signingReport

SHA1 è mostrato nei registri dei messaggi

Il plug-in Android (configurato nell'app Gradle) crea una modalità di debug per impostazione predefinita.

com.android.application

Percorso del file al keystore:

HOME / .android / debug.keystore

Consiglio di collegare debug.keystore a build.gradle. Per fare ciò, inserire un file debug.keystore in una cartella dell'app e quindi Aggiungi SigningConfigs nell'app 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: se si desidera creare per la versione, inserire un file release.keystore in una cartella dell'app. (Questo esempio usa lo stesso debug.keystore)


3

Prova questo: Windows ---- preferenze ---- Android - build --- sh1 copia codice da qui


3

Ero così confuso la prima volta, ma ti propongo la soluzione di lavoro finale per Windows:

1) Apri cmd e vai alla tua directory Java / jdk / bin (basta premere cd ..per tornare indietro di una cartella e cd NAME_FOLDERandare avanti di una cartella), nel mio caso, la cartella finale:C:\Program Files\Java\jdk1.8.0_73\bin> inserisci qui la descrizione dell'immagine

2) Ora digita questo comando keytool -list -v -keystore C:\Users\YOUR_WINDOWS_USER\.android\debug.keystore -alias androiddebugkey -storepass android -keypass android

Di conseguenza devi ottenere qualcosa del genere: inserisci qui la descrizione dell'immagine


2

Penso che funzionerà perfettamente. Ho usato lo stesso:

Per Android Studio:

Fai clic su Genera> Genera APK firmato. Verrà visualizzata una finestra di messaggio, basta fare clic su OK.

Ora ci sarà un'altra finestra per copiare il Key Store Path.

Ora apri un prompt dei comandi e vai a C: \ Programmi \ Java \ jdk1.6.0_39 \ bin> (o qualsiasi versione jdk installata).

Digitare keytool -list -v -keystore e quindi incollare il percorso dell'archivio chiavi (es. C: \ Programmi \ Java \ jdk1.6.0_39 \ bin> keytool -list -v -keystore "E: \ I miei progetti \ Android \ android studio \ apks firmati \ Hello World \ HelloWorld.jks ").

Ora richiederà la password dell'archivio chiavi, fornisci la tua e premi Invio per ottenere le chiavi di certificato SHA1 e MD5.

Ora aggiungi questa chiave SHA1 alla console degli sviluppatori di Google nella scheda credenziali e modifica anche le varianti di build in Android Studio in modalità di rilascio.


impossibile inserire la password dell'archivio chiavi che digito ma la password non è stata digitata nel prompt dei comandi
Mahendra Dabi

la password non è visibile, basta digitare la password correttamente e premere Invio per ottenere le chiavi
Rishab Jain

grazie ho inserito la password sbagliata ora funziona grazie ragazzi
Mahendra Dabi

1

Per quelli su Mac che cercano keytool. Segui questi passi:

Innanzitutto assicurati di installare Java JDK http://docs.oracle.com/javase/7/docs/webnotes/install/mac/mac-jdk.html

Quindi digita questo nel prompt dei comandi:

/usr/libexec/java_home -v 1.7

sputerà qualcosa del tipo:

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

keytool si trova nella stessa directory di javac. vale a dire:

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

Dalla directory bin è possibile utilizzare il keytool.


1

Se sei su Mac / Linux, puoi ottenere l'impronta digitale SHA1 scrivendo la seguente riga nel terminale:

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

Ci sono 2 cose possibili dopo questo

  1. Ti chiederà la password

    Basta digitare

androide

e premere invio, è possibile trovare il tasto SHA1 nell'output mostrato di seguito.

  1. Ti chiederà di scaricare un programma adatto (e verrà fornito un elenco)

    Basta digitare il seguente terminale

sudo apt installa openjdk-8-jre-headless

e poi di nuovo esegui quanto segue nel terminale: keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

Questa volta, verrai portato al passaggio 1, in cui devi solo inserire la password come

androide

e otterrai l'impronta digitale SHA1 di seguito nell'output.


0

Utilizzando portecle :

  • File> Apri file Keystore
  • Immettere la password del keystore
  • Fare clic con il tasto destro del mouse sul nome alias> Dettagli certificato> SHA-1 Fingerprint


0

Volevo inviare un avviso a coloro che hanno lo stesso problema. Ho seguito i passaggi per generare il mio debug SHA-1 e la mia versione SHA-1. Stavo tentando di connettere l'API di accesso di Google alla mia app.

Ho riscontrato il problema che il debug .apk funzionava correttamente, si connetteva e si autenticava con l'accesso a Google. La mia versione .apk funzionerebbe anche, se installata manualmente sul telefono. Quando ho pubblicato la mia versione .apk sul Google Play Store, il mio accesso a Google non si autenticava e avrei avuto un problema!

Per molto tempo non sono riuscito a capirlo, ma ho scoperto che la mia app era stata firmata da google, vale a dire, il messaggio nella parte superiore della console per gli sviluppatori stava mostrando: la firma dell'app di Google Play è abilitata per questa app.

Sono andato alla mia scheda Gestione delle versioni, quindi ho scorrere verso il basso fino a Firma app e ho trovato SHA-1 lì. Dopo aver aggiunto questo al mio codice e su "console Firebase" che stavo usando come back-end per l'accesso a Google, tutto sembrava funzionare. Sembra che il mio keystore di rilascio sia stato sostituito con il certificato firmato google ... Non sono sicuro se questo è ciò che stava accadendo, ma ha risolto il mio problema e ha permesso all'apk di rilascio del mio Google Play Store di autenticarsi correttamente con il segno di google nel!


0

Soluzione passo passo:

  1. Apri il prompt dei comandi o il Terminale per Mac
  2. Cambia directory in directory del percorso del file keytool. Cambia directory usando il comando cd <directory path>. (Nota: se un nome di directory ha spazio, aggiungere \tra le due parole. Esempio cd /Applications/Android\ Studio.app//Contents/jre/jdk/Contents/Home/bin/)

    • Per trovare la posizione del tuo keytool, vai su Android Studio ... apri il tuo progetto. E vai a

    • File> Struttura del progetto> Posizione SDK ... e trova la posizione JDK.

  3. Esegui il keytool con questo comando: keytool -list -v –keystore <your jks file path>(Nota: se un nome di directory ha spazio, aggiungi \ tra le due parole. Esempio keytool -list -v -keystore /Users/username/Desktop/tasmiah\ mobile/v3/jordanos.jks)

  4. Il comando richiede di digitare la password .. quindi digitare la password .. quindi si ottiene il risultato


0

Ecco lo strumento per programmatori pigri:

1 aggiungi dipendenza:

compile 'com.vk:androidsdk:1.6.9'

2 aggiungi le seguenti righe da qualche parte nella tua attività / applicazione:

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

3 Aprire logcat e catturare il messaggio.

4 Profitto!


0
  1. Apri il tuo prompt dei comandi
  2. Passare alla directory di lavoro su 1.8.0 / bin
  3. incolla keytool -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore
  4. Premi Invio se ti chiede una password

0

Se si desidera ottenere la chiave fingerprint-sha1 dalla firma del file keystore.jks Eseguire il comando seguente dal terminale:

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

Esempio

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

0

Si prega di fare clic su Gradle dal lato destro del menu, quindi fare clic su: app Quindi fare clic sulla cartella Android Quindi SigningReport nome del file esiste lì Fare doppio clic su quello. Inizierà l'esecuzione e tra poco ti mostrerà il codice SHA-1 Basta copiare il codice. E incollalo dove ne hai bisogno

Rapporto sulla firma evidenziato nell'immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.