APK签名验证与证书指纹查看
拿到一个安装包,怎么确认它有没有被改过?这篇讲两层检查方法:验签名完整性和核对证书指纹,都在手机上能完成。
一、验证签名能发现什么
对 APK 做签名验证,工具会回答两个问题:
- 有没有签过名——没签名的包,安卓系统根本不让装;
- 签名是否完整——签名之后包内容有没有被改动过。
一个典型用法:同一个应用的两个包,一个验证通过、一个报「已修改」,报错的那个多半被动过手脚或传输损坏。签完名先验证一次再安装,也是同样的道理。
二、在手机上怎么验
手机端工具里这类功能通常单独占一个标签。以 Apksigner 签名工作台 为例:切到「验证」标签,选「验证文件」指定手机里的 APK(也支持 jar、zip 一类压缩包),几秒内给出结论;已安装的应用可以直接走「验证应用程序」入口检查。
三、证书指纹是什么,什么时候看
每个签名密钥都对应一组证书指纹(MD5 / SHA-1 / SHA-256),相当于这把钥匙的「身份指纹」。什么时候有用:
- 对比两个包是不是同一来源:指纹一致,说明出自同一把签名密钥;
- 确认自己导入的密钥库没拿错:导入后在详情页核对指纹与备份记录是否一致;
- 配合发布平台核对:某些分发渠道会要求上报签名指纹。
在工具里打开密钥库详情就能看到这三组指纹,十六进制串一目了然。
四、签名验证不通过的常见原因
| 现象 | 多半是 |
|---|---|
| 提示未签名 | 包真的没签,或签名后被重新压缩改动过 |
| 提示已修改 / 不完整 | 签名之后包内容被改动,或文件损坏 |
| 新系统拒装只签 V1 的包 | 安卓 11 起要求 V2 及以上,重签时把 V2 勾上 |
重签的完整操作流程在 手机上怎么给APK签名 里按步骤讲过;签名钥匙本身的保管,见 密钥库备份与丢失处理。