Android应用签名校验和完整性校验实战
创作时间:
作者:
@小白创作中心
Android应用签名校验和完整性校验实战
引用
CSDN
1.
https://blog.csdn.net/u011195398/article/details/84567580
签名校验和完整性校验是Android应用开发中重要的安全措施,主要用于防范二次打包和盗版风险。本文将详细介绍如何进行签名校验,包括获取APK、获取调试应用的keystore、对APK进行重新签名等步骤,并提供具体的命令行操作示例。
准备工作
在开始之前,你需要确保已经完成以下准备工作:
- 项目代码:确保你有一个完整的Android项目代码。
- 主要实现类:了解项目中的主要实现类,例如
SignatureChecker
。
验证默认签名信息
1. 获取应用的APK
在编写好项目以后,通过以下步骤获取APK:
- 点击
build -> build apk
。 - 文件路径:
app/build/outputs/apk/debug/app-debug.apk
。
2. 获取调试应用的keystore
- 打开Finder程序,路径:
Go -> Home -> ./android/debug.keystore
。 - 使用keytool命令查看android模式调试debug.keystore的签名信息,默认密码为空。
命令:
keytool -list -v -keystore debug.keystore
3. 信息对比
检查apk文件中的签名信息:
命令:
keytool -printcert -file CERT.RSA
对比信息:
在这里完全可以看出,我们的apk默认的是经过androidstudio的debug.keystore来签名过的APK。
对APK进行重新签名
创建两个keystore
创建两个KeyStore文件,分别命名为keyStoreA
和keyStoreB
。
创建一个未签名的Apk,命名为app-release-unsigned
。
对APK进行签名
使用KeyStoreA文件对app-release-unsigned
进行签名,签名后的APK为app-release-keystoreA
。
命令:
jarsigner -verbose -keystore /path/to/keystoreA -signedjar /path/to/app-release-keystoreA.apk /path/to/app-release-unsigned.apk android
命令解析:
-keystore
参数指定您的私钥的绝对路径。-signedjar
参数指定签名后apk文件存放绝对的路径。[未签名的文件路径]
指定要签名apk文件的绝对路径。[您的证书名称]
是指您创建密钥时您设置的证书名称。
删除APK的签名信息并重新打包
- 解压
app-release-keystoreA
,删除META-INFO文件夹下的三个文件:
ANDROID.RSA
ANDROID.SF
MANIFEST.MF
注意:这里的三个文件的名称因为工具的原因可能会根据改变,我们删除的时候,看他的后缀名称就好。
重新打包删除后的
app-release-keystoreA
文件,后缀名改为APK。使用
keyStoreB
对app-release-keystoreA
进行重新签名,生成app-release-keystoreB
。
命令:
jarsigner -verbose -keystore /path/to/keystoreB -signedjar /path/to/app-release-keystoreB.apk /path/to/app-release-keystoreA.apk androidx
防止APP被盗版验证
KeyStoreA和KeyStoreB的签名MD5比较
- 安装keystoreA签名过的APK文件。
命令:
adb install -r /path/to/app-release-keystoreA.apk
生成MD5值:
8ad65c2224d9c303250c7c49a3672323
- 修改签名,使用KeyStoreB重新签名
命令:
adb install -r /path/to/app-release-keystoreA.apk
生成MD5值:
8fe878055ba594ee41ba8a4b2e0ca3e5
注意:这里的MD5值不和KeyStore显示的格式一样,是因为我格式再次进行了MD5加密。
可以看出来,即使是同样的APK,但是使用不同的签名还是会出现不同的APK值。所以,我们可以在应用中做校验,当MD5值不一样时,就不是官方正版的APK了。
热门推荐
全国儿童预防接种日:免费自费疫苗全解析,7大接种疑问解答
跨越世纪的合作:洛克菲勒基金会与北京协和医学院111年历程
约翰·洛克菲勒:慈善之王的百年传奇
脑梗工伤医疗费报销攻略:协议医院选择与费用结算详解
天麻:冬季养生神器,不止治头痛那么简单
天麻泡水治头痛?科学依据、使用方法全解析
四川绵阳:工作人员工作时晕倒死亡,48小时时限引发工伤认定争议
2025年工伤新规:脑梗48小时死亡可视工伤,明确三大赔偿项目
西藏定日发生6.8级地震,已致126人遇难,低温缺氧考验救援力量
多家保险公司启动应急机制,为西藏地震灾区提供快速理赔服务
血小板计数749:血小板增多症的诊断与治疗指南
北京军红救援队完成地震救援培训,全员通过考核
冬季养生:警惕营养不良导致血小板减少
真性血小板增多症:从诊断到治疗的全面解析
海参保存秘籍:让美味持久保鲜
海参保存秘籍:让美味持久保鲜!
大连干海参保存秘籍,吃货必看!
冬季养生必备:海参保存秘籍
海参保存全攻略:不同类型海参的正确保存方法
孙子兵法教你职场制胜秘籍
《孙子兵法》教你职场逆袭,老板看了都想点赞👍
《孙子兵法》教你搞定企业危机
《孙子兵法》智慧在现代战争中的应用:从南海争端到无人机作战
孙子兵法:职场兵法大师教你逆袭
怎样养出乌黑亮丽好头发?护发小妙招请查收
童子尿?酱油?牙膏?别在伤口上涂这些了!正确选择是……
新疆沙枣:从生态卫士到致富果
有氧运动:提升“好胆固醇”的关键
匈牙利旅游全攻略:热门景点与地道小吃的完美融合!
当“好胆固醇”变坏:HDL-FC与心血管疾病风险的新发现