2021-06-21

背景

最近的一个项目集成了百度定位SDK,创建应用提供了包名证书指纹(MD5、SHA-1、SHA-256),其实刚接触Android的时候就已经使用过了,现在回头来整理一下,供后面学习参考。

使用jdk自带的keytool工具

证书在手的情况,可以直接使用命令查看证书信息

keytool -list -v -keystore [keystore或jks文件路径] -storepass [密钥库密码]

比如一下操作

deMacBook-Pro:~ keytool -list -v -keystore /Users/……/XX.keystore 
输入密钥库口令:  
密钥库类型: JKS
密钥库提供方: SUN

您的密钥库包含 1 个条目

别名: landi
创建日期: 2013年1月23日
条目类型: PrivateKeyEntry
证书链长度: 1
证书[1]:
所有者: CN=landi, OU=landicorp, O=landicorp, L=Fuzhou, ST=Fujian, C=86
发布者: CN=landi, OU=landicorp, O=landicorp, L=Fuzhou, ST=Fujian, C=86
序列号: 50feb7b1
生效时间: Wed Jan 23 00:00:49 CST 2013, 失效时间: Tue May 26 00:00:49 CST 3012
证书指纹:
	 SHA1: 04:AD:77:B5:7B:D9:4A:C5:E7:99:5F:76:52:C0:59:0C:A3:39:A5:D0
	 SHA256: AB:C8:BC:3F:39:23:1F:EC:AD:ED:C7:2F:BD:63:F4:9E:F5:EB:C9:CC:03:81:FA:32:7C:6F:7F:24:D0:FE:FB:10
签名算法名称: SHA1withRSA (弱)
主体公共密钥算法: 1024 位 RSA 密钥 (弱)
版本: 3


*******************************************

手中只有已签名的APK包

	之间有个项目是别人维护的,接手到源码之后发现没有签名文件,对方也不是主负责该项目的,需要去找对应的签名文件,所以先去应用市场下载一个apk包,我们知道apk打包之后包内会有RSA文件,这个是证书公钥,用来给系统验证apk包签名有效性的,且不同的私钥对应不同的公钥。换句话言之,不同的私钥签名的APK公钥也必不相同。所以我们可以根据公钥的对比,来判断私钥是否一致。

1.将apk修改后缀名.zip后进行解压
2.找到RSA文件 apk包/META-INF/xxx.RSA
3.使用命令读取RSA的信息:

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

命令介绍

keytool -printcert [OPTION]...
 
打印证书内容
 
选项:
 
 -rfc                        以 RFC 样式输出
 -file <filename>            输入文件名
 -sslserver <server[:port]>  SSL 服务器主机和端口
 -jarfile <filename>         已签名的 jar 文件
 -v                          详细输出

操作如下:

keytool -printcert -file E:\....\M
TA-INF\CERT.RSA
所有者: CN=landi, OU=landicorp, O=landicorp, L=Fuzhou, ST=Fujian, C=86
发布者: CN=landi, OU=landicorp, O=landicorp, L=Fuzhou, ST=Fujian, C=86
序列号: 50feb7b1
有效期开始日期: Wed Jan 23 00:00:49 CST 2013, 截止日期: Tue May 26 00:00:49 CST
012
证书指纹:
        MD5: 42:3E:DF:F6:B5:15:9B:1B:8E:30:B8:67:E6:AD:E8:CB
        SHA1: 04:AD:77:B5:7B:D9:4A:C5:E7:99:5F:76:52:C0:59:0C:A3:39:A5:D0
        SHA256: AB:C8:BC:3F:39:23:1F:EC:AD:ED:C7:2F:BD:63:F4:9E:F5:EB:C9:CC:03:
1:FA:32:7C:6F:7F:24:D0:FE:FB:10
        签名算法名称: SHA1withRSA
        版本: 3

通过对比SHA1或者SHA256的值看是否是对应的签名文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值