如何找到apk文件的签名?

时间:2016-07-25 01:44:08

标签: android signature

查找apk文件签名的最简单方法是什么?请注意,我不会询问代码。我只是想从我的电脑上找到它。像这样的签名975yYkKAQF + KST7g3ASHvHkYopq =

4 个答案:

答案 0 :(得分:7)

$ $ANDROID_SDK/build-tools/$BUILD_TOOLS_VERSION/apksigner verify --print-certs -v $APK_FILE

示例:

$ /Users/hborders/android/build-tools/29.0.2/apksigner verify --print-certs -v ~/Desktop/my-apk.apk

Verifies
Verified using v1 scheme (JAR signing): true
Verified using v2 scheme (APK Signature Scheme v2): true
Verified using v3 scheme (APK Signature Scheme v3): false
Number of signers: 1
Signer #1 certificate DN: CN=Bob Smith, OU=Acme, O=Acme, L=San Francisco, ST=California, C=US
Signer #1 certificate SHA-256 digest: f1f2f3f3f21f26a67s76a6a76a76a76a76a67c78c8c78c709c90c90c09932451
Signer #1 certificate SHA-1 digest: 839103847abdefcbade123713957358920
Signer #1 certificate MD5 digest: 182831983712923f2e2e2f2a2c2fbc25
Signer #1 key algorithm: RSA
Signer #1 key size (bits): 1024
Signer #1 public key SHA-256 digest: 8acaca8cabcaabdadc8cc99cc695ace47aec4c747c746c476cae4657c47c4765
Signer #1 public key SHA-1 digest: b11bca4123bea24befbe5b8be9768ef078

apksignerbuild-tools目录中Android SDK的一部分。 print-apk-signature使用的工具。

答案 1 :(得分:3)

Signature[] sigs = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES).signatures;
for (Signature sig : sigs)
{
    Trace.i("MyApp", "Signature hashcode : " + sig.hashCode());
}

http://developer.android.com/reference/android/content/pm/PackageManager.html

这可能会有所帮助

首先,解压缩APK并解压缩文件/META-INF/ANDROID_.RSA(此文件也可能是CERT.RSA,但应该只有一个.RSA文件)。

然后发出以下命令:

keytool -printcert -file ANDROID_.RSA 您将获得如下证书指纹:

 MD5:  B3:4F:BE:07:AA:78:24:DC:CA:92:36:FF:AE:8C:17:DB
 SHA1: 16:59:E7:E3:0C:AA:7A:0D:F2:0D:05:20:12:A8:85:0B:32:C5:4F:68
 Signature algorithm name: SHA1withRSA

然后再次使用keytool打印出签名密钥库的所有别名:

keytool -list -keystore my-signing-key.keystore 您将获得别名列表及其证书指纹:

android_key,2010年1月23日,PrivateKeyEntry, 证书指纹(MD5):B3:4F:BE:07:AA:78:24:DC:CA:92:36:FF:AE:8C:17:DB 瞧!我们现在可以确定apk已经使用此密钥库签名,并使用别名' android_key&#39 ;.

Keytool是Java的一部分,因此请确保您的PATH中包含Java安装目录。

How do I find out which keystore was used to sign an app?

答案 2 :(得分:3)

您可以使用Java 7的密钥和证书管理工具(keytool)来获取应用程序的签名。运行波纹管命令

keytool -printcert -jarfile app-release.apk

您也可以get Signature of a Keystore查看此帖子:How we can check SHA1 or Signature of APK and Keystore file

答案 3 :(得分:1)

https://github.com/warren-bank/print-apk-signature

ex:print-apk-signature ./file.apk SHA1