根据自己的理解描述下Android数字签名?
2016-02-26 21:04
357 查看
(1) 所有的应用程序都必须有数字证书。Android系统不会安装一个没有数字证书的应用程序。
(2) Android程序包使用的数字证书可以是自签名的,不需要一个权威的数字证书机构签名认证。
(3) 如果要正式发布一个Android,必须使用一个合适的私钥生成的数字证书来给程序签名,而不能使用adt插件或者ant工具生成的调试证书来发布。
(4)数字证书都是有有效期,Android只是在应用程序安装的时候才会检查证书的有效期。如果程序已经安装在系统中,即使证书过期也不会影响程序的正常功能
2)Android并不要求所有应用程序的签名证书都由可信任CA的根证书签名,通过这点保证了其生态系统的开放性,所有人都可以用自己生成的证书对应用程序签名。
3)如果想修改一个已经发布的应用程序,哪怕是修改一张图片,都必须对其进行重新签名。但是,签原始应用的私钥一般是拿不到的(肯定在原始应用程序开发者的手上,且不可能公布出去),所以只能用另外一组公私钥对,生成一个新的证书,对重打包的应用进行签名。所以重打包的apk中所带证书的公钥肯定和原始应用不一样。同时,在手机上如果想安装一个应用程序,应用程序安装器会先检查相同包名的应用是否已经被安装过,如果已经安装过,会继续判断已经安装的应用和将要安装的应用,其所携带的数字证书中的公钥是否一致。如果相同,则继续安装;而如果不同,则会提示用户先卸载前面已安装的应用。通过这种方式来提示用户,前后两个应用是不同开发者签名的,可能有一个是李鬼。
(2) Android程序包使用的数字证书可以是自签名的,不需要一个权威的数字证书机构签名认证。
(3) 如果要正式发布一个Android,必须使用一个合适的私钥生成的数字证书来给程序签名,而不能使用adt插件或者ant工具生成的调试证书来发布。
(4)数字证书都是有有效期,Android只是在应用程序安装的时候才会检查证书的有效期。如果程序已经安装在系统中,即使证书过期也不会影响程序的正常功能
总结
1)Android应用程序签名只是用来解决发布的应用不被别人篡改的,其并不会对应用程序本身进行加密,这点不同于Windows Phone和iOS。2)Android并不要求所有应用程序的签名证书都由可信任CA的根证书签名,通过这点保证了其生态系统的开放性,所有人都可以用自己生成的证书对应用程序签名。
3)如果想修改一个已经发布的应用程序,哪怕是修改一张图片,都必须对其进行重新签名。但是,签原始应用的私钥一般是拿不到的(肯定在原始应用程序开发者的手上,且不可能公布出去),所以只能用另外一组公私钥对,生成一个新的证书,对重打包的应用进行签名。所以重打包的apk中所带证书的公钥肯定和原始应用不一样。同时,在手机上如果想安装一个应用程序,应用程序安装器会先检查相同包名的应用是否已经被安装过,如果已经安装过,会继续判断已经安装的应用和将要安装的应用,其所携带的数字证书中的公钥是否一致。如果相同,则继续安装;而如果不同,则会提示用户先卸载前面已安装的应用。通过这种方式来提示用户,前后两个应用是不同开发者签名的,可能有一个是李鬼。
相关文章推荐
- Android NFC开发(二)——Android世界里的NFC所具备的条件以及使用方法
- Android NFC开发(二)——Android世界里的NFC所具备的条件以及使用方法
- HP商务本安装Android Studio时HAXM安装失败并提示需要启动VT-X的问题
- 只需两步,使你的Android Studio支持Lambda表达式(有更新)
- android监听ScrollView滑动停止
- xUtils3简介
- Android保持屏幕常亮的方法总结
- Web前端环境搭建篇之--安装配置Android开发环境
- Android的Activity屏幕左右切换动画
- 最简单也最难——怎样获取到Android控件的高度
- Android获取屏幕宽度与长度的三个…
- 如何用android sharedprefere…
- Android应用程序中,activity的管…
- Android逆向笔记(2)--- 破解第一个程序
- android工程中资源模块划分
- 【Android】启动时跳过欢迎界面的时机
- 【Android】进入应用和切换界面时闪屏的问题
- 【Android】使用技巧 —— 快速进入某一界面
- Android ROM开发(三)——精简官方ROM并且内置ROOT权限,开启Romer之路
- GridView常用属性