Android获取APK或者.jks签名信息

声明:本文非原创,是网上相关资料的一个总结!
参考:
Android查看应用签名方法
获取apk证书MD5值的方法

查看apk文件的签名

方法一

首先解压要查看的apk包,通过数据证书管理工具keytool查看apk的签名信息。具体步骤如下:
1)将apk修改后缀为.rar文件后进行解压;
2)进入解压后的META-INF目录,找到该目录下的xxx.RSA文件;
3)打开Terminal终端,输入命令 :

keytool -printcert -file [RSA文件路径]

方法二

直接执行命令:

keytool -printcert -jarfile xxx.apk

查看keystore文件的信息

利用keytool查看

如果我们直接有签名的.jks文件,可以直接查看其相关信息。
执行下边命令:

keytool -list -v -keystore xxxx.jks -storepass 签名文件密码

或者手动输入密码:

keytool -list -v -keystore xxxx.jks

利用Android Studio查看

如果是我们自己的项目,可以通过AS直接查看:
打开 AS工具窗口栏右边的Gradle -> Project -> app -> Tasks -> android -> signingReport,双击运行 signingReport
Android获取APK或者.jks签名信息_第1张图片
signingReport 运行完后,就可以看到debug和release版签名的相关信息。

AS新建签名文件报警告⚠️

在最近的几个版本的AS中,新建keystore之后,会弹出一个警告:

JKS 密钥库使用专用格式。建议使用 “keytool -importkeystore -srckeystore xxx.jks -destkeystore xxx.jks -deststoretype pkcs12” 迁移到行业标准格式 PKCS12。

这里先了解一下两种格式的不同:
JKS(Java KeyStore):是 Java 的 keytools 证书工具支持的证书私钥格式。jks 包含了公钥和私钥,可以通过 keytool 工具来将公钥和私钥导出。因为包含了私钥,所以 jks 文件通常通过一个密码来加以保护。一般用于 Java 或者 Tomcat 服务器。

PKCS #12:定义了一种存档文件格式,用于实现存储许多加密对象在一个单独的文件中。通常用它来打包一个私钥及有关的 X.509 证书,或者打包信任链的全部项目。

那么就按提示操作即可:
1)在终端输入命令 :keytool -importkeystore -srckeystore [签名文件路径] -destkeystore [签名文件路径] -deststoretype pkcs12命令把 JKS 格式证书转换成 PKCS12 格式证书;
2)转换成功后,就会在目标文件夹看到新的替换签名证书xxx.jks和旧的重命名签名证书xxx.jks.old

你可能感兴趣的:(Android学习笔记)