Is there any way to get key hash from signed APK?
Is there any way to get key hash from signed APK?
We have a signed Android apk file, and we want to find out key hash of this APK, for Facebook SDK.
Can we do that by something like jarsigner?
Any suggestions?
Solution 1:
On linux, I used this command to get the key hash from an apk:
keytool -list -printcert -jarfile [path_to_your_apk] | grep -Po "(?<=SHA1:) .*" | xxd -r -p | openssl base64
For Mac Users (OS X) as there is no grep -P support
keytool -list -printcert -jarfile ~/Downloads/YOURAPKFILE.apk | grep "SHA1: " | cut -d " " -f 3 | xxd -r -p | openssl base64
Solution 2:
For windows users getting the key from openssl, may be tricky some times.. I always use this to find the right signature.. Just paste this code in your onCreate() and run.
// Add code to print out the key hash
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) {
}
Update:
Using Android studio(2.1.2):
- Open your project on studio and click on the gradle icon.
- Choose your app -> Tasks -> android -> SigningReport
This will run a gradle task that will print the debug and release certificate with md5 and sha1 keys
Solution 3:
You can download openssa from here
- To generate signature you need openssl installed on your pc. If you don’t have one download openssl from here
- In C: , Create openssl folder
- Extract the contents of downloaded openssl zip file into openssl folder in C:drive
- Open Command prompt
- Move to bin of openssl i.e C:\openssl\bin in command prompt
-
Run the following command to generate your keyhash. While generating hashkey it should ask you password.
keytool -exportcert -alias androiddebugkey -keystore "C:\Users\Anhsirk.android\debug.keystore" | openssl sha1 -binary | openssl base64
NOTE: In the above code, note that you need to give your path to user(i.e in my case it is C:\Users\Anhsirk, you just need to change this for your user account.
Give password as android. If it don’t ask for password your keystore path is incorrect.
Solution 4:
It's too late to answer but its very quick way to get Signed app key hash.
Install apk and it can extract all apps key hash.
Download from: https://apkpure.com/key-hash-key/notimeforunch.keyhash