ChatGPT解决这个技术问题 Extra ChatGPT

How to obtain Signing certificate fingerprint (SHA1) for OAuth 2.0 on Android?

I'm trying to register my android app following the steps in https://developers.google.com/console/help/#installed_applications which leads me to follow http://developer.android.com/tools/publishing/app-signing.html.

However, I'm not sure how to get the signing certificate fingerprint (SHA1).

I first used the Eclipse ADT plugin to export and create the keystore/key. Then, I tried doing keytool -list keystore mykeystore.keystore and it gives me a MD5 Certificate fingerprint. Do I need to redo the signing (meaning I can't use the eclipse export wizard)?

Can I use a debug certificate first?

Before exporting/uploading your app use user2453771's answer. After exporting/uploading use frederick nyawaya's answer. Remember that and save yourself a few hours of pain.
how to generate release apk keystore using linux terminal
Easiest way to Get SHA-1 For Release and Debug mode android studio gradle. Check this

F
Frederick Nyawaya

https://i.stack.imgur.com/SldEv.png


MD5 appears in logcat now (not in the window during creation).
Do the export process twice. It will be shown in the second turn.
Is there a way to create a new one using this method? I tried to do this, but my old keystore file is there, but I think it's the wrong one (I need a debug certificate, not a release one), plus I forgot the password. >_< Thanks if you have a tip.
NOTE: You don't have to fully export an .apk. You can cancel at this point after copying the SHA1 to avoid creating unnecessary .apks.
N
Nick

I know this question has been answered but this is how I found my signature for the default keystore. In Eclipse, if you go to Windows -> Preferences -> Android -> Build

https://i.stack.imgur.com/kzVTx.png


This should be the accepted answer, since it is the easisest way.
for the default/debug keystore, not the production keystore
Guys please notice that the safe answer is @frederick nyawaya's. If your app had different build and publish key stores (which is most of the times the case, the map will NOT work on your clients. And God know when you will know this since it works fine on your own computer. Please be careful. This is easy but you are likely to end up having a non working map service on your client devices.
K
Kaushik

I think this will work perfectly. I used the same:

For Android Studio:

Click on Build > Generate Signed APK. You will get a message box, just click OK. Now there will be another window just copy Key Store Path. Now open a command prompt and go to C:\Program Files\Java\jdk1.6.0_39\bin> (or any installed jdk version). Type keytool -list -v -keystore and then paste your Key Store Path (Eg. C:\Program Files\Java\jdk1.6.0_39\bin>keytool -list -v -keystore "E:\My Projects \Android\android studio\signed apks\Hello World\HelloWorld.jks"). Now it will Ask Key Store Password, provide yours and press Enter to get your SHA1 and MD5 Certificate keys.


keystore file created via other machine can i get sh1 with same key store file with above procedure on different machinge
R
Randy Sugianto 'Yuku'

If you are using Mac or even Linux, just copy and paste this onto the Terminal application and you will get the SHA1 key immediately. No need to change anything.

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

Example 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 example please. /home/desktop/././. , abc.jks, which password n all, do we need all these details??
keytool -list -v -keystore my-release-key.keystore
The JKS keystore uses a proprietary format. It is recommended to migrate to PKCS12 which is an industry standard format using "keytool -importkeystore -srckeystore /.keystore -destkeystore /.keystore -deststoretype pkcs12".
D
Dan Jurgen

use this in the command line

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

this I felt was the simplest and yet the standard way as more and more people migrate to IntelliJ/ Studio and don't have access to ease of Eclipse/ ADT. Cheers mate!!
Why its asking me password
i got, access denied.!
g
gurkan

Open terminal (in Unix, in MAC), (cmd in Windows) and cd to this (your java) path:

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

Run this command:

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

Just change the path to debug.keystore and you will get both MD5 and SHA-1 fingerprints.


S
Simon MᶜKenzie
keytool -list -v -keystore "keyStoreName"

Run this command from the directory where the keystore of your app exists.


This can be used to get the SHA1 for your client app that you will export and publish. This is probably different from the one you see in eclipse, which is a debug keystore.
H
Harunduet

In Android Studio, follow these steps:

Click Gradle properties menu at right side of your android studio IDE. Expand Task tree. Click on signingReport You can see your SHA1 at the bottom console

https://i.stack.imgur.com/J8XUD.jpg


J
Joel Christophel

See if you want to use Google Map at that time you need MD5 fingerprint for generating api kay for using google map in your android application.

Keytool command generated MD5 fingerprint if you use JDK 1.6 and it generates SHA1 fingerprint if you use JDK 1.7.

So the thing is that if you want to sign your application for publishing then read this.

And if you want to use google-map read this.


Thanks for the replay Akshay. Apparently I needed to add -v to my keytool command to show the other certificate fingerprints. Also, apparently I can use a debug certificate to create a client ID.
Mostly. I solved my issue of creating a Client ID. However, I'm new to OAuth in general and not how certificates and fingerprints work. I guess a certificate can have both an MD5 and SHA1 fingerprint? At least that's what I get when I do the keytool -list -v etc command
u
user9869932

If you are using IntelliJ (12+?), go to menu Build/Generate signed Api

After filling a popup, get the data in the field "key store path" (e.g. C:\Users\user\Documents\store\store)

And run in a command line:

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

Good luck


V
Vinod Joshi

If any one using the Android studio...

click: Build > Generate Signed in APK Create a new key: this will generated ".jks" files

Use following command to read the data(SHA1 and other info):

$ keytool -list -v -keystore filename.jks


extra tip: command to generate Key Hash for facebook $keytool -keystore filename.jks | openssl sha1 -binary | openssl base64
T
TaeKwonJoe

For those using OpenSSL you can retrieve the SHA1 fingerprint this way:

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

Which would result in the following output:

https://i.stack.imgur.com/aNq1w.png


C
Choletski

I was so confusing first time, but I propose you final working solution for Windows:

https://i.stack.imgur.com/dB6la.jpg

2) Now type this command keytool -list -v -keystore C:\Users\YOUR_WINDOWS_USER\.android\debug.keystore -alias androiddebugkey -storepass android -keypass android

https://i.stack.imgur.com/NdpF6.jpg


s
shim

Here is my easy solution for this:

Click on Gradle button, you can find at the right side top. you will see all the gradle files. Now go to android, and double click on signingReport. Once the gradle build finishes, you see the SHA key. Check the below images for step by step guide.

Once you click on Gradle check the below images. Hope this helps someone.

STEP 1:

https://i.stack.imgur.com/KTuGe.png

STEP 2:

https://i.stack.imgur.com/tHSJP.png


S
SergioLucas

If you are using Android Studio. You can get fastly the SHA1 certificate fingerprint (debug,release... all Build Types!!) through Gradle Tasks:

signingReport

SHA1 is shown in Messages Logs

Android Plugin (configured in the gradle app) creates a debug mode for default.

com.android.application

File route to keystore:

HOME/.android/debug.keystore

I recommend attach debug.keystore to build.gradle. To do this put a file debug.keystore to a app folder and then Add SigningConfigs in gradle app:

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: If you want creates for release, put a file release.keystore to a app folder. (This example uses the same debug.keystore)


P
Poras Bhardwaj

If you are using Android Studio. You don't need to generate a SHA1 fingerprint using cmd prompt. You just need to create a project with default Maps Activity of Android Studio.In the project you can get the fingerprint in google_maps_api.xml under Values folder. Hope this will help you. :)

https://i.stack.imgur.com/TbAPS.png


D
David Arenburg

Try this One: Windows----preferences----Android--build---sh1 code copy from here


R
Rishab Jain

I think this will work perfectly. I used the same:

For Android Studio:

Click on Build > Generate Signed APK. You will get a message box, just click OK.

Now there will be another window just copy Key Store Path.

Now open a command prompt and go to C:\Program Files\Java\jdk1.6.0_39\bin> (or any installed jdk version).

Type keytool -list -v -keystore and then paste your Key Store Path (Eg. C:\Program Files\Java\jdk1.6.0_39\bin>keytool -list -v -keystore "E:\My Projects \Android\android studio\signed apks\Hello World\HelloWorld.jks").

Now it will Ask Key Store Password, provide yours and press Enter to get your SHA1 and MD5 Certificate keys.

Now add this SHA1 key to the google developers console in credentials tab and also change the build variants in android studio to release mode.


unable to enter key store password i type but password not typed in command prompt
password is not visible just type your password correctly and press enter you will get your keys
thank you i entered wrong password now it's work thank you guys
U
Uzair

Please Click on Gradle from Right side of Menu Then Click on :app Then Click android folder Then SigningReport file name is exist there Double click on that. It Will start executing and in a while it will show you SHA-1 Code Just copy the code. And paste it where you need it

https://i.stack.imgur.com/h6krV.png


w
wired00

For those on mac looking for keytool. follow these steps:

Firstly make sure to install Java JDK http://docs.oracle.com/javase/7/docs/webnotes/install/mac/mac-jdk.html

Then type this into command prompt:

/usr/libexec/java_home -v 1.7

it will spit out something like:

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

keytool is located in the same directory as javac. ie:

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

From bin directory you can use the keytool.


A
Akshay Chopra

If you are on Mac/Linux, then you can get SHA1 fingerprint by writing following line in the terminal:

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

There are 2 things possible after this

It will ask you for the password Just type

android

and press enter, you can find the SHA1 key in the output shown below.

It will ask you to download a suitable program (and some list will be given) Just type following in terminal

sudo apt install openjdk-8-jre-headless

and then again run following in terminal: keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

This time, you will be led to step 1, where you need to just enter the password as

android

and you will get your SHA1 fingerprint below in the output.


S
Sandun Sameera

Open your command prompt Navigate working directory to 1.8.0/bin paste keytool -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore Press enter if it ask you a password


s
samsul

If you want to obtain fingerprint-sha1 key from signing keystore.jks file Run the following command from terminal:

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

Example

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

R
Radi

Using portecle :

File > Open Keystore file

Enter Keystore password

Right click on alias name > Certificate details > SHA-1 Fingerprint


C
Community

Easiest way to Get SHA-1 For Release and Debug mode android studio gradle. Check this


B
Brandon

I wanted to post a notice to those that are having the same issue as me. I went through the steps to generate my debug SHA-1 and my release SHA-1. I was attempting to connect Google Sign-In API with my app.

I ran into the issue that the debug .apk would work fine, it would connect and authenticate with Google Sign-In. My release .apk would also work, when installed manually to the phone. When I posted my release .apk to the Google play store, my google Sign-in would not authenticate and I would get an issue!

For the longest time I couldn't figure it out, but I found that my app was being signed by google, i.e., the message on the top of the Developer console was showing: Google Play App Signing is enabled for this app.

I went to my Release Management tab, then scrolled down to App Signing, and found the SHA-1 there. After adding this to my code and on "firebase console" which I was using as the backend for Google Sign-in, everything seemed to work. It looks like my release keystore was getting replaced with the google signed certificate... I'm not really sure if this is what was happening, but it resolved my issue and allowed my Google Play Store release apk to correctly authenticate with the google sign in!


F
Fabrizio

Step by step solution:

Open your command prompt or Terminal for Mac Change directory to directory of the keytool file location. Change directory by using command cd . (Note: if any directory name has space then add \ between the two words. Example cd /Applications/Android\ Studio.app//Contents/jre/jdk/Contents/Home/bin/) To find the location of your keytool, you go to android studio..open your project. And go to File>project Structure>SDK location..and find JDK location. Run the keytool by this command: keytool -list -v –keystore (Note: if any directory name has space then add \ between the two words. example keytool -list -v -keystore /Users/username/Desktop/tasmiah\ mobile/v3/jordanos.jks) Command prompt you to key in the password.. so key in your password.. then you get the result


A
Aleksandr

Here is tool for lazy coders:

1 add dependency:

compile 'com.vk:androidsdk:1.6.9'

2 add following lines somewhere in your activity/application:

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

3 Open logcat and catch message.

4 Profit!


P
Peter

https://i.stack.imgur.com/3WVSw.png

open terminal in Android studio Copy the command( keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android) Paster it on terminal and press the enter key


关注公众号,不定期副业成功案例分享
Follow WeChat

Success story sharing

Want to stay one step ahead of the latest teleworks?

Subscribe Now