[笔记]Android Apk Java签名的含义
2016-06-28 20:26
309 查看
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获取应用的签名和公钥;
听了同事的分享及查阅相关文章,目前的理解是:
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实现表情 抓取新浪表情
- 详解Android解析Xml的三种方式——DOM、SAX以及XMLpull
- android开发环境遇到adt无法启动的问题分析及解决方法
- Android开发 旋转屏幕导致Activity重建解决方法
- Android开发技巧之在a标签或TextView控件中单击链接弹出Activity(自定义动作)
- Android开发技巧之ViewStub控件惰性装载
- Android开发常用经典代码段集锦
- 分享10个很棒的学习Android开发的网站
- android开发之横向滚动/竖向滚动的ListView(固定列头)
- Android开发技巧之我的菜单我做主(自定义菜单)
- Windows下使用Apache Cordova开发ANDROID之HelloWorld
- 根据根据图片的url怎么取得图片ImageView对象
- [转] ADB server didn't ACK
- android开发的相关链接
- Android数据存储之SharedPreferences 共享首选项/偏好设置
- 基于NDK的Android防破解
- 麦子学院android开发笔记:Android更换RatingBar图片
- android开发入门知识之AIDL详解
- AutoCompleteTextView组件的功能和用法