如何获取apk的签名信息?

在网站需要管理apk的功能时,经常需要校验上传者提供的apk文件,校验开发者签名,包名和版本等。如何获取apk文件的签名信息呢?

通过如下几个步骤便可实现:

1、获得apksigner.jar

apksigner.jar通常包含在Android SDK中可。如果你不是Android开发者, 可找Android开发同学拿一下,路径一般在Android SDK/build-tools/{SDK版本}/lib/apksigner.jar
不同的SDK版本中均有一个,取最新版本的就好了。

2、执行命令
java -jar apksigner.jar verify --verbose --print-certs app-release.apk

输出示例: (个人信息已加***处理, 请以实际输出为准)

D:\Program\Android\SDK\build-tools\26.0.2\lib>java -jar apksigner.jar verify --verbose --print-certs app-release.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
Verified using v4 scheme (APK Signature Scheme v4): false
Verified for SourceStamp: false
Number of signers: 1
Signer #1 certificate DN: CN=*, OU=** O=***, L=xiamen, ST=fujian, C=361000
Signer #1 certificate SHA-256 digest: 91fc3453866***313807d7e21a6b1f96033e79e79***4800852d0762
Signer #1 certificate SHA-1 digest: 11d1423b4de***3a7804e0952a4c30ed5
Signer #1 certificate MD5 digest: 7c27df7***80c3fdabbeccc386
Signer #1 key algorithm: RSA
Signer #1 key size (bits): 2048
Signer #1 public key SHA-256 digest: 3aa***9cc4da5ed93f29ef9***068e3ea1d31***416a9f230e31a
Signer #1 public key SHA-1 digest: a83***41d39b07257b508059***92e5d
Signer #1 public key MD5 digest: 05f4e42***bb39b7***9135
3、解析数据获得想要的信息

通过输出内容可以发现,其中包含apk使用的签名版本(v1/v2/v3/v4)信息外,还有开发者证书相关的信息。
接下来通过程序裁剪出你想要的信息便大功告成了。

你可能感兴趣的:(如何获取apk的签名信息?)