Android签名机制介绍:生成keystore.签名.查看签名信息等方法
为什么80%的码农都做不了架构师?>>>
Android独有的安全机制,除了权限机制外,另外一个就是签名机制了。签名机制主要用在以下两个主要场合起到其作用:升级App和权限检查。
升级App
用户在升级一款已经安装过的App时,如果程序的修改来自于同一来源,则允许升级安装,否则会提示签名不一致无法安装的提示。
权限检查
我曾在Android Permission权限机制的具体使用一文中提过,对于申请权限的 protection level 为 signature 或者 signatureOrSystem 的,会检查权限申请者和权限声明者的证书是否是一致的。
至于签名机制的原理及其他作用,此不详述,本文主要介绍,签名文件key的生成、用key去签名apk文件及查看签名的方法。
生成keystore
创建keystore,需要用到keytool.exe (位于jdk_xx\jre\bin目录下),具体做法如下:
keytool -genkey -alias mykey -keyalg RSA -validity 40000 -keystore demo.keystore#说明:# -genkey 产生密钥# -alias mykey 别名 mykey# -keyalg RSA 使用RSA算法对签名加密# -validity 40000 有效期限4000天# -keystore demo.keystore
对apk进行签名
使用产生的keystore对apk签名,使用到的是jarsigner.exe ,该工具位于jdk_xx\bin目录下,命令如下:
jarsigner -verbose -keystore demo.keystore -signedjar test_signed.apk test.apk mykey# test_signed.apk是签名之后的文件# test.apk是需要签名的文件
另外需要注意的是,如果你的jdk版本在1.7以上,你在对apk签名时,需要加上这个参数:
-digestalg SHA1 -sigalg MD5withRSA
否则同样会出现:Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]的错误。
查看签名信息
1、查看keystore的信息
keytool -list -keystore demo.keystore -alias mykey -v
2、查看keystore的公钥证书信息
keytool -list -keystore demo.keystore -alias mykey -rfc
(注:获取Base64格式的公钥证书,RFC 1421)
3、查看apk的签名信息
jarsigner -verify -verbose -certs <your_apk_path.apk>
转载于:https://my.oschina.net/reone/blog/706396
Android签名机制介绍:生成keystore.签名.查看签名信息等方法相关推荐
- Android签名机制:生成keystore、签名、查看签名信息
2019独角兽企业重金招聘Python工程师标准>>> Android独有的安全机制,除了权限机制外,另外一个就是签名机制了.签名机制主要用在以下两个主要场合起到其作用:升级App和 ...
- linux系统查看机器硬件信息,linux系统查看硬件信息的方法
用过Linux系统的人都知道这么一个情况,那就是Linux大部分操作是通过命令实现的,并不像Windows那么直观.linux查看硬件信息也是需要通过命令查询才可以看得到硬件的信息,那linux系统如 ...
- win7打开信息服务器,Win7怎么打开系统服务查看系统服务信息的方法
摘要 腾兴网为您分享:Win7怎么打开系统服务查看系统服务信息的方法,音恋,晓黑板,小米钱包,网易支付等软件知识,以及惠管家,火萤壁纸,荒岛求生中文补丁,1234漫,电影淘淘,流放之路国服功能补丁,有 ...
- 中兴网络设备交换机路由器查看告警信息命令方法
描述:中兴网络设备交换机路由器查看告警信息命令方法 命令: show logging alarm
- 生成keystore和apk签名
在Android项目开发中想要将项目导出为apk的时候需要选择一个数字证书,即keystore文件,用来对apk进行签名,是导出APP的一个钥匙,一般需要我们自己生成android.keystore文 ...
- soap签名_签名SOAP消息–生成封装的XML签名
soap签名 数字签名是使数字内容可信的一种广泛使用的机制. 通过为某些内容生成数字签名,我们可以让另一方能够验证该内容. 通过此验证,它可以保证在我们签名后不会更改. 通过这个示例,我将分享如何为S ...
- 签名SOAP消息–生成封装的XML签名
数字签名是使数字内容真实可信的一种广泛使用的机制. 通过为某些内容生成数字签名,我们可以让另一方能够验证该内容. 通过此验证,它可以保证在我们签名后不会更改. 通过这个示例,我将分享如何为SOAP信封 ...
- 安卓生成keystore和查看keystore
----------------重要通知-------------- Hello,本人的博客文章已更新至个人网站(www.jonexu.cn) 文章中有问题可以到网站联系博主,后续新的文章也将更新在个 ...
- linux 查看主机版本,Linux下如何查看版本信息的方法步骤
Linux下如何查看版本信息, 包括位数.版本信息以及CPU内核信息.CPU具体型号等等,整个CPU信息一目了然. 1.# uname -a (Linux查看版本当前操作系统内核信息) Linux ...
最新文章
- 对光照、阴影和反光具有鲁棒性的变化检测算法及实现
- 如何制作自己的静态库
- scrapy Crawl_spider
- SSH dao层异常 org.hibernate.HibernateException: No Session found for current thread
- UITableViewCell不重用代码
- how to be successful with salesforce
- VR:下一个技术风口
- Julia也能做爬虫?可以,但没必要
- 证书重新生成_Kubernates证书过期问题的解决
- 在线打字练习网站介绍
- 北斗芯片是如何决定着北斗产业的未来?
- linux开发板添加qt库文件_关于QT程序下载到开发板的一些步骤总结
- uni-app入门教程
- 天空里的云偶遇 彩虹做成衣裳也要用心呵护——潮港城的茶点,好芒果的冰饮...
- tp5html的if判断,TP5 判断方法
- 移动拨号上网开热点(不是360开热点,而是使用电脑自带的热点功能)详解
- 淘宝店铺宝贝转化率该如何提升
- DDD的常见问题、争论以及局限性
- 美女主持直播,被突发意外打断!湾区网友却高喊: 我懂!超甜
- 夏天地板保养的注意事项
热门文章
- Excel2003Training(1)-浅谈Excel的5个小技巧
- 云计算技术都要学什么?教你分清公有云、私有云和混合云
- Codeforces Round #546 (Div. 2) B. Nastya Is Playing Computer Games
- Java编程配置思路详解
- 清理Oracle安装目录里的一些日志信息
- “2016智能终端峰会新闻发布会暨移动信息化可信选型认证结果发布会” —— 在京成功召开...
- express 框架中的参数小记
- 冒烟测试与回归测试的区别
- memcached完全剖析系列教程《转》 memcached完全剖析系列教程–2.理解memcached的内存存储...
- Oracle RMAN中备份表空间名为'TEST'时需要注意的问题