Android 签名(META-INF)
来源:互联网 发布:apache和nginx共存 编辑:程序博客网 时间:2024/05/18 23:58
在Android的apk包中含有一个叫做META-INF的文件夹,这个里边存储的是关于签名的一些信息。
其中将apk包解压出来,进入META-INF目录,发现会有3个文件:CERT.RSA,CERT.SF,MANIFEST.MF。
用记事本打开MANIFEST.MF文件,这是个可读的文本文件,大约内容如下:
Manifest-Version: 1.0Created-By: 1.0 (Android)Name: res/drawable-hdpi/shop_search_bg.pngSHA1-Digest: OgQ5gmKTFoxuZWAaKBBJKl1Oy24=Name: res/drawable/merchant_btn_selector.xmlSHA1-Digest: AkxLT25+wtnL6DCN10rcSTpz6kM=
版本号以及对每一个文件的哈希值(BASE64)。包括资源文件。这个是对每个文件的整体进行SHA1 hash
然后是CERT.SF文件,用记事本打开,内容如下:
Signature-Version: 1.0Created-By: 1.0 (Android)SHA1-Digest-Manifest: I2tqVFgbG+PZh6o8SWuDePSrTcQ=Name: res/drawable-hdpi/shop_search_bg.pngSHA1-Digest: twMIUeZAdwmMBjIDlo/5EiSFWj0=Name: res/drawable/merchant_btn_selector.xmlSHA1-Digest: GJqtJ+iUO4Xrjgzri8nzR+GDLVU=
看到跟manifest.mf中的很类似,也是BASE64编码的哈希值,这个是对每个文件的头3行进行SHA1 hash。
这两个文件中的内容仅仅是个摘要,也就是仅仅对文件做个hash。
最后一个文件是CERT.RSA,这个文件中放的是apk包的签名,同时还有证书的公钥。
一般来说,证书的内容是:开发者信息+开发者公钥 +CA的签名( CA对前两部分做hash值然后私钥加密之后的密文)
验证过程是:用CA公钥对括号里的内容解密,然后对前两部分hash,跟CA的签名进行对比,看是否相同。
暂时不知道Android中既然已经有了对整个文件的摘要,为什么还要弄个前3行的摘要。
猜想:
cert.rsa这个文件中应该存放的是开发者信息+开发者公钥+开发者签名【自己就是CA】(对前两部分的hash用自己私钥做加密),
解密过程应该是:首先提取自己公钥,然后对自己加密的那部分解密,然后对前2部分做hash进行比对,模拟跟验证证书。然后再用公钥依次验证每一个文件的摘要看是否正确。
0 0
- Android 签名(META-INF)
- <Android APK签名验签>二:META-INF文件分析
- META-INF
- META-INF
- META-INF
- WEB-INF与META-INF
- META-INF和WEB-INF
- Android 之 去除 Jar 包中 META-INF/DEPENDENCIES.txt
- android studio Duplicate files copied in APK META-INF/NOTICE
- Android解决Duplicate files copied in APK META-INF/LICENSE
- /META-INF/context.xml
- META-INF的作用
- "META-INF"文件夹
- 浅析META-INF
- Android之android studio如何解决':app:packageDebug'.(Duplicate files copied in APK META-INF/DEPENDENCIES)
- TOMCAT下应用部署新法(/META-INF/context.xml)
- jar包详解和META-INF作用(转)
- AndroidStudio打jar包(包含META-INF文件)
- Libgdx 1.0.0快速创建工程
- Iterate over All the matches
- AJ训练(二叉树递归分冶)
- 第13周项目2
- 关于安卓开发工具翻译
- Android 签名(META-INF)
- 升级到php5.4:织梦cms安装完成后登录后台出现空白解决办法
- Web_PHP_DedeCMS_DedeCMS开发点滴(开发库);
- 装了数据库之后用DBCA创建数据库实例以及安装Oracle10g服务里没有监听的解决方法
- 树状数组BIT-乒乓比赛
- 黑马程序员--学习笔记(其他类)
- 常用Sql语句
- 关于学习编程中会遇到的一些小问题
- 使用yum快速部署Oracle安装环境(11g)