Como obter a impressão digital do certificado de assinatura (SHA1) para OAuth 2.0 no Android?

154

Estou tentando registrar meu aplicativo Android seguindo as etapas em https://developers.google.com/console/help/#installed_applications, o que me leva a seguir http://developer.android.com/tools/publishing/app- signature.html .

No entanto, não sei como obter a impressão digital do certificado de assinatura (SHA1).

Eu usei o plug-in Eclipse ADT pela primeira vez para exportar e criar o keystore / key. Então, tentei fazer keytool -list keystore mykeystore.keystoree isso me deu uma impressão digital do certificado MD5. Preciso refazer a assinatura (o que significa que não posso usar o assistente de exportação do eclipse)?

Posso usar um certificado de depuração primeiro?

Alex
fonte
Antes de exportar / fazer upload do seu aplicativo, use a resposta do usuário2453771. Após exportar / fazer o upload, use a resposta de frederick nyawaya. Lembre-se disso e economize algumas horas de dor.
precisa saber é o seguinte
como gerar liberação apk armazenamento de chave usando o terminal linux
Manish
1
A maneira mais fácil de obter o SHA-1 para lançamento e modo de depuração no android studio gradle. Verifique isto
Naeem Ibrahim

Respostas:

174

Inicie um processo de exportação para criar um apk para o seu aplicativo e use sua chave de produção. A última página exibe as impressões digitais dos certificados SHA1 e MD5enter image description here

Frederick Nyawaya
fonte
2
O MD5 aparece no logcat agora (não na janela durante a criação).
Ferramenta
4
Faça o processo de exportação duas vezes. Isso será mostrado no segundo turno.
Chaveiro # 29/13
Existe uma maneira de criar um novo usando esse método? Tentei fazer isso, mas meu antigo arquivo de keystore está lá, mas acho que é o errado (preciso de um certificado de depuração, não de um release), além de ter esquecido a senha. > _ <Obrigado se você tiver uma dica.
Azurespot
NOTA: Você não precisa exportar completamente um .apk. Você pode cancelar neste momento após copiar o SHA1 para evitar a criação de .apks desnecessários.
GraSim 12/11/2015
139

Sei que esta pergunta foi respondida, mas foi assim que encontrei minha assinatura para o keystore padrão. No Eclipse, se você acessar Windows -> Preferências -> Android -> Compilar

insira a descrição da imagem aqui

usuario
fonte
5
Essa deve ser a resposta aceita, já que é a maneira mais fácil.
Mustafa
3
para o armazenamento de chaves padrão / debug, e não o armazenamento de chaves de produção
Frederick Nyawaya
3
Pessoal, observe que a resposta segura é @frederick nyawaya's. Se o seu aplicativo tiver diferentes versões para compilar e publicar (o que geralmente ocorre, o mapa NÃO funcionará em seus clientes. E Deus sabe quando você saberá disso, pois ele funciona bem em seu próprio computador. Tenha cuidado. Isso é fácil, mas é provável que acabam por ter um serviço não mapa de trabalho em seus dispositivos clientes.
Tina
92

Eu acho que isso vai funcionar perfeitamente. Eu usei o mesmo:

Para o Android Studio:

  1. Clique em Compilar > Gerar APK assinado .
  2. Você receberá uma caixa de mensagem, basta clicar em OK.
  3. Agora haverá outra janela, apenas copie o Key Store Path .
  4. Agora abra um prompt de comando e vá para C: \ Arquivos de Programas \ Java \ jdk1.6.0_39 \ bin> (ou qualquer versão jdk instalada).
  5. Digite keytool -list -v -keystore e cole seu Caminho do Key Store (por exemplo: C: \ Arquivos de Programas \ Java \ jdk1.6.0_39 \ bin> keytool -list -v -keystore "E: \ Meus Projetos \ Android \ android studio \ apks assinados \ Hello World \ HelloWorld.jks ").
  6. Agora ele solicitará a senha do armazenamento de chaves , fornecerá a sua e pressione Enterpara obter as chaves do certificado SHA1 e MD5.
Ravi
fonte
arquivo de armazenamento de chaves criado através de outra máquina posso obter sh1 com o mesmo arquivo de armazenamento de chaves com procedimento acima em machinge diferente
Mahendra Dabi
Muito obrigado
Hiren
74

Se você estiver usando Mac ou mesmo Linux, basta copiar e colar isso no aplicativo Terminal e você receberá a chave SHA1 imediatamente. Não há necessidade de mudar nada.

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

Exemplo de saída:

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'
fonte
@yuku exemplo, por favor. /home/desktop/././. , abc.jks, qual senha n all, precisamos de todos esses detalhes?
Prabs
Obrigado. Somente esta é a maneira mais fácil.
Sayka
Você realmente salvou meu dia. Muito obrigado.
precisa
keytool -list -v -keystore my-release-key.keystore
Bases de neve
O keystore JKS usa um formato proprietário. Recomenda-se migrar para o PKCS12, que é um formato padrão do setor usando "keytool -importkeystore -srckeystore <caminho de armazenamento de chaves existente> / <nome da variável> .keystore -destkeystore <caminho da nova loja de chaves> / < nome da variante> .keystore -deststoretype pkcs12 ".
Arpit J. #
68

use isso na linha de comando

c:\Program Files\Java\jdk1.6.25\bin>keytool -list -v -keystore c:\you_key_here.key
Dan Jurgen
fonte
1
isso foi a maneira mais simples e, no entanto, padrão, à medida que mais e mais pessoas migram para o IntelliJ / Studio e não têm acesso à facilidade do Eclipse / ADT. Cheers companheiro !!
Himadri Pant
Por sua password me perguntando
Abhijit Chakra
eu tenho acesso negado.
sudhakar PHAD
59

Abra o terminal (no Unix , no MAC ), ( cmdno Windows ) e cdpara este caminho (o seu java):

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

Execute este comando:

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

Basta mudar o caminho para debug.keystoree você obterá as impressões digitais MD5 e SHA-1.

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

Execute este comando no diretório em que o keystore do seu aplicativo existe.

Manmohan Soni
fonte
Isso pode ser usado para obter o SHA1 para seu aplicativo cliente que você exportará e publicará. Provavelmente é diferente daquele que você vê no eclipse, que é um keystore de depuração.
dannyhan12
29

No Android Studio, siga estas etapas:

  1. Clique no menu de propriedades Gradle no lado direito do seu IDE do android studio.
  2. Expanda a árvore de tarefas.
  3. Clique em signatureReport Você pode ver seu SHA1 no console inferior

insira a descrição da imagem aqui

Harunduet
fonte
13

Veja se você deseja usar Google Mapnaquele momento, precisa de MD5impressão digital para gerarapi kay uso do google map no seu aplicativo Android.

O comando Keytool gerou MD5impressão digital se você usar JDK 1.6e ele gera SHA1impressão digital se você usar JDK 1.7.

Portanto, se você deseja assinar seu aplicativo para publicação, leia isso .

E se você quiser usar, google-mapleia isso .

Akshay
fonte
Obrigado pela repetição Akshay. Aparentemente, eu precisava adicionar -v ao meu comando keytool para mostrar as outras impressões digitais do certificado. Além disso, aparentemente eu posso usar um certificado de depuração para criar um ID de cliente.
Alex
1
Na maioria das vezes. Resolvi meu problema de criar um ID do cliente. No entanto, sou novo no OAuth em geral e não no funcionamento de certificados e impressões digitais. Eu acho que um certificado pode ter uma impressão digital MD5 e SHA1? Pelo menos é o que eu recebo quando eu faço o keytool -list -v etccomando
Alex
12

Se você estiver usando IntelliJ (12+?), Vá para o menu Build / Generate Api

Depois de preencher um pop-up, obtenha os dados no campo "caminho do armazenamento de chaves" (por exemplo, C: \ Usuários \ usuário \ Documentos \ loja \ loja)

E execute em uma linha 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
...

Boa sorte

user9869932
fonte
12

Se alguém usando o estúdio Android ...

clique em: Criar> Gerar APK conectado Crie uma nova chave: isso gerará arquivos ".jks"

Use o seguinte comando para ler os dados (SHA1 e outras informações):

$ keytool -list -v -keystore filename.jks

Vinod Joshi
fonte
dica extra : comando para gerar Hash Key para facebook$keytool -keystore filename.jks | openssl sha1 -binary | openssl base64
MuhFred
4

Para aqueles que usam o OpenSSL, é possível recuperar a impressão digital SHA1 da seguinte maneira:

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

O que resultaria na seguinte saída:

insira a descrição da imagem aqui

TaeKwonJoe
fonte
4

Se você estiver usando o Android Studio. Você não precisa gerar uma impressão digital SHA1 usando o prompt do cmd. Você só precisa criar um projeto com a Atividade padrão do Google Maps do Android Studio. No projeto, você pode obter a impressão digital em google_maps_api.xml na pasta Valores. Espero que isso ajude você. :)

insira a descrição da imagem aqui

Poras Bhardwaj
fonte
4

Aqui está minha solução fácil para isso:

Clique em Gradle botão, você pode encontrar no canto superior direito. você verá todos os arquivos gradle. Agora vá para o Android e clique duas vezes em signatureReport. Quando a construção da gradação terminar, você verá a chave SHA. Verifique as imagens abaixo para obter um guia passo a passo.

Depois de clicar em Gradle, verifique as imagens abaixo. Espero que isso ajude alguém.

PASSO 1:

Imagem Etapa um

PASSO 2:

Image Etapa dois

basavaraj_S
fonte
3

Se você estiver usando o Android Studio. Você pode obter rapidamente a impressão digital do certificado SHA1 (depurar, liberar ... todos os tipos de compilação !!) através das Tarefas Gradle :

signatureReport

SHA1 é mostrado em Logs de Mensagens

O plug-in do Android (configurado no aplicativo gradle) cria um modo de depuração por padrão.

com.android.application

Rota do arquivo para o keystore:

HOME / .android / debug.keystore

Eu recomendo anexar debug.keystore ao build.gradle. Para fazer isso, coloque um arquivo debug.keystore em uma pasta do aplicativo e adicione Add SigningConfigs no aplicativo 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 você deseja criar para lançamento, coloque um arquivo release.keystore em uma pasta do aplicativo. (Este exemplo usa o mesmo debug.keystore)

SergioLucas
fonte
3

Experimente este: Windows ---- preferências ---- Android - build --- cópia do código sh1 a partir daqui

Ravind Maurya
fonte
3

Fiquei muito confuso na primeira vez, mas proponho a solução final para o Windows:

1) Abra o cmd e vá para o diretório Java / jdk / bin (basta pressionar cd ..para voltar uma pasta e cd NAME_FOLDERavançar uma pasta), no meu caso, a pasta final:C:\Program Files\Java\jdk1.8.0_73\bin> insira a descrição da imagem aqui

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

Como resultado, você precisa obter algo parecido com isto: insira a descrição da imagem aqui

Choletski
fonte
2

Eu acho que isso vai funcionar perfeitamente. Eu usei o mesmo:

Para o Android Studio:

Clique em Compilar> Gerar APK assinado. Você receberá uma caixa de mensagem, basta clicar em OK.

Agora haverá outra janela, apenas copie o Key Store Path.

Agora abra um prompt de comando e vá para C: \ Arquivos de Programas \ Java \ jdk1.6.0_39 \ bin> (ou qualquer versão jdk instalada).

Digite keytool -list -v -keystore e cole seu Caminho do Key Store (por exemplo: C: \ Arquivos de Programas \ Java \ jdk1.6.0_39 \ bin> keytool -list -v -keystore "E: \ Meus Projetos \ Android \ android studio \ apks assinados \ Hello World \ HelloWorld.jks ").

Agora ele solicitará a senha do armazenamento de chaves, fornecerá a sua e pressione Enter para obter suas chaves de certificado SHA1 e MD5.

Agora adicione essa chave SHA1 ao console do desenvolvedor do Google na guia credenciais e também altere as variantes de compilação no android studio para o modo de lançamento.

Rishab Jain
fonte
incapaz de digitar a senha do armazenamento de chaves eu digito, mas senha não digitou no prompt de comando
Mahendra Dabi
a senha não está visível, digite sua senha corretamente e pressione enter, você receberá as suas chaves
Rishab Jain
obrigado eu digitei a senha errada agora é trabalho obrigado vcs
Mahendra Dabi 23/17
1

Para aqueles no mac que procuram keytool. Siga esses passos:

Primeiramente, certifique-se de instalar o Java JDK http://docs.oracle.com/javase/7/docs/webnotes/install/mac/mac-jdk.html

Em seguida, digite isso no prompt de comando:

/usr/libexec/java_home -v 1.7

cuspirá algo como:

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

keytool está localizado no mesmo diretório que javac. ou seja:

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

No diretório bin, você pode usar o keytool.

wired00
fonte
1

Se você estiver no Mac / Linux, poderá obter a impressão digital SHA1 escrevendo a seguinte linha no terminal:

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

Existem duas coisas possíveis após isso

  1. Ele solicitará a senha

    Apenas digite

andróide

e pressione enter, você pode encontrar a tecla SHA1 na saída mostrada abaixo.

  1. Ele solicitará que você baixe um programa adequado (e será fornecida uma lista)

    Basta digitar o seguinte no terminal

O sudo apt instala o openjdk-8-jre-headless

e execute novamente o seguinte no terminal: keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

Desta vez, você será direcionado para a etapa 1, na qual você precisa apenas digitar a senha

andróide

e você obterá sua impressão digital SHA1 abaixo na saída.

Akshay Chopra
fonte
0

Usando portecle :

  • Arquivo> Abrir arquivo Keystore
  • Digite a senha do Keystore
  • Clique com o botão direito do mouse no nome alternativo> Detalhes do certificado> Impressão digital SHA-1
Radi
fonte
0

A maneira mais fácil de obter o SHA-1 para o lançamento e o modo de depuração do android studio gradle. Marque esta

Naeem Ibrahim
fonte
0

Queria postar um aviso para aqueles que estão tendo o mesmo problema que eu. Eu segui as etapas para gerar minha depuração SHA-1 e minha versão SHA-1. Eu estava tentando conectar a API de login do Google ao meu aplicativo.

Deparei com o problema de que o .apk de depuração funcionaria bem, ele se conectaria e se autenticaria com o Logon do Google. Meu lançamento .apk também funcionaria, quando instalado manualmente no telefone. Quando publiquei meu release .apk na loja de jogos do Google, meu login do google não era autenticado e eu recebia um problema!

Durante muito tempo, não consegui descobrir, mas descobri que meu aplicativo estava sendo assinado pelo google, ou seja, a mensagem na parte superior do console do desenvolvedor estava aparecendo: A assinatura do aplicativo Google Play está ativada para este aplicativo.

Eu fui para a guia Gerenciamento de Liberação, rolei para baixo até App Signing e encontrei o SHA-1 lá. Depois de adicionar isso ao meu código e no "console do firebase", que eu estava usando como back-end do Google Sign-in, tudo parecia funcionar. Parece que meu keystore de lançamento foi substituído pelo certificado assinado pelo google ... Não tenho muita certeza se isso é o que estava acontecendo, mas resolveu o meu problema e permitiu que meu apk da versão do Google Play Store se autenticasse corretamente com o sinal do google no!

Brandon
fonte
0

Solução passo a passo:

  1. Abra o prompt de comando ou o Terminal para Mac
  2. Mude o diretório para o diretório do local do arquivo keytool. Altere o diretório usando o comando cd <directory path>. (Nota: se algum nome de diretório tiver espaço, adicione \entre as duas palavras. Exemplo cd /Applications/Android\ Studio.app//Contents/jre/jdk/Contents/Home/bin/)

    • Para encontrar a localização do seu keytool, vá para o android studio .. abra seu projeto. E vai para

    • Arquivo> Estrutura do projeto> Local do SDK ... e localize o JDK.

  3. Execute o keytool com este comando: keytool -list -v –keystore <your jks file path>(Nota: se algum nome de diretório tiver espaço, adicione \ entre as duas palavras. Exemplo keytool -list -v -keystore /Users/username/Desktop/tasmiah\ mobile/v3/jordanos.jks)

  4. Prompt de comando para digitar a senha .. então digite sua senha .. então você obtém o resultado

wael
fonte
0

Aqui está a ferramenta para codificadores preguiçosos:

1 adicionar dependência:

compile 'com.vk:androidsdk:1.6.9'

2 adicione as seguintes linhas em algum lugar da sua atividade / aplicação:

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

3 Abra o logcat e capture a mensagem.

4 Lucro!

Aleksandr
fonte
0
  1. Abra seu prompt de comando
  2. Navegue no diretório de trabalho para 1.8.0 / bin
  3. colar keytool -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore
  4. Pressione Enter se ele pedir-lhe uma senha
Sandun Sameera
fonte
0

Se você deseja obter a chave fingerprint-sha1 do arquivo keystore.jks, execute o seguinte comando no terminal:

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

Exemplo

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
fonte
0

Por favor, clique em Gradle no lado direito do menu e clique em: app, em seguida, clique na pasta android e, em seguida, no nome do arquivo SigningReport existe, clique duas vezes nele. Ele começará a executar e, em algum momento, mostrará o código SHA-1. Apenas copie o código. E cole onde você precisar

Relatório de assinatura destacado na imagem

Uzair
fonte