[笔记]Android Apk Java签名的含义
来源:互联网 发布:淘宝美工的工作总结 编辑:程序博客网 时间:2024/06/06 01:51
Android App中的Java签名指的是啥?
听了同事的分享及查阅相关文章,目前的理解是:
1.Java签名文件里包含着一对RSA的公钥和私钥;
2.打包签名过程中,打包脚本使用私钥对生成的CERT.SF进行RSA加密;然后将加密结果和公钥保存在CERT.RSA中;(CERT.SF、CERT.RSA文件位于Apk包中META-INF目录下)
3.创建Java签名文件时,会让我们填写Store Password、Key Alias、Key Password;下图是Android Studio中创建Java签名文件的页面,文件名叫bangtest.jks:
其中,Store Password是用来保护签名文件本身的,要查看和打开签名文件bangtest.jks,必须要输入Store Password;
Key Password是用来保护私钥的,在读取签名文件后,只有输入Key Password后,才能get到RSA的私钥。
至于签名文件中RSA的公钥和私钥的生成规则,需要研究Java工具源码;
更改Store Password和Key Password的值不会影响里面的RSA公钥和私钥;
4.在安装和运行Apk时,Android系统通过相同的算法对META-INF目录下的MANIFEST.SF、XXX.SF、XXX.RSA文件进行一一校验;
5.打包产生的apk里的META-INF目录下的.SF、.RSA文件名为CERT.SF、CERT.RSA,但是从应用市场上下载得到apk,其META-INF目录下的.SF、.RSA文件名就被改为XXX.SF、XXX.RSA了;XXX的命名貌似是以Key Alias命名的。
6.进入签名文件bangtest.jks所在目录,输入:keytool -list -v -keystore bangtest.jks,可以得到类似下图内容:直观上我们是看不到RSA的公钥和私钥的;
7.Java的KeyStore可以从签名文件中读取到RSA公钥和私钥;详见:http://blog.csdn.net/satcon/article/details/7363059;
KeyStore源码见:https://docs.oracle.com/javase/7/docs/api/java/security/KeyStore.html;
8.Android系统中也提供了api获取应用的签名和公钥;
- [笔记]Android Apk Java签名的含义
- Android的apk签名
- Android的apk签名
- Android APK的签名与重新签名
- Android APK的签名与重新签名
- Android APK的签名与重新签名
- Android APK的签名与重新签名
- android给未签名的apk签名
- android 对未签名的apk签名
- android给未签名的apk签名
- Android的Apk签名原理
- android apk的签名机制
- Android: 查看APK的签名
- java 解析 apk 的签名
- Android笔记:AndoidStudio 签名打包apk
- Android APK 签名(1.5之前的版本)
- 获取Android的APK包签名信息
- 如何给Android的apk重新签名
- Spring的配置文件积累
- redis之ziplist
- Android AndFix 热修复框架
- mysql统计
- 多态,前提,特点,好处,弊端
- [笔记]Android Apk Java签名的含义
- CentOS 6.8操作系统安装PostGIS笔记
- Hadoop环境搭建与Eclipse调试环境搭建
- 单机系统改造成集群部署的几个关注点
- 本月技术阅览
- 015-Dijkstra算法-贪心-《算法设计技巧与分析》M.H.A学习笔记
- 无限轮播的实现
- 远程调试ambari
- 汇编指令查询器代码