如何判断 Android 应用的 Apk 签名是否一致?

可以比对apk签名的fingerprint。

假定安装了JDK,如果想查HelloWorld.apk所使用的签名的fingerprint,可以这样做:

1. 查找apk里的rsa文件

(Windows)
> jar tf HelloWorld.apk |findstr RSA

(Linux)
$ jar tf HelloWorld.apk |grep RSA


META-INF/CERT.RSA

2. 从apk中解压rsa文件

jar xf HelloWorld.apk META-INF/CERT.RSA

3. 获取签名的fingerprints

keytool -printcert -file META-INF/CERT.RSA

...
Certificate fingerprints:
MD5: BC:6D:BD:6E:49:69:2A:57:A8:B8:28:89:04:3B:93:A8
SHA1: 0D:DF:76:F4:85:96:DF:17:C2:68:1D:3D:FF:9B:0F:D2:A1:CF:14:60
Signature algorithm name: SHA1withRSA
Version: 3
...

4. 清理工作,删除rsa文件

(Windows)
rmdir /S /Q META-INF

(Linux)
rm -rf META-INF


如果你想知道两个apk是不是用的同一个签名,那比一下它们签名的MD5码(或SHA1码)是不是一样就行了。

 

 

本文转自:http://www.zhihu.com/question/20749413

已通过该方法验证应用的签名是否相同;

posted @   似水流云  阅读(1444)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示