为什么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.签名.查看签名信息等方法相关推荐

  1. Android签名机制:生成keystore、签名、查看签名信息

    2019独角兽企业重金招聘Python工程师标准>>> Android独有的安全机制,除了权限机制外,另外一个就是签名机制了.签名机制主要用在以下两个主要场合起到其作用:升级App和 ...

  2. linux系统查看机器硬件信息,linux系统查看硬件信息的方法

    用过Linux系统的人都知道这么一个情况,那就是Linux大部分操作是通过命令实现的,并不像Windows那么直观.linux查看硬件信息也是需要通过命令查询才可以看得到硬件的信息,那linux系统如 ...

  3. win7打开信息服务器,Win7怎么打开系统服务查看系统服务信息的方法

    摘要 腾兴网为您分享:Win7怎么打开系统服务查看系统服务信息的方法,音恋,晓黑板,小米钱包,网易支付等软件知识,以及惠管家,火萤壁纸,荒岛求生中文补丁,1234漫,电影淘淘,流放之路国服功能补丁,有 ...

  4. 中兴网络设备交换机路由器查看告警信息命令方法

    描述:中兴网络设备交换机路由器查看告警信息命令方法 命令: show logging alarm

  5. 生成keystore和apk签名

    在Android项目开发中想要将项目导出为apk的时候需要选择一个数字证书,即keystore文件,用来对apk进行签名,是导出APP的一个钥匙,一般需要我们自己生成android.keystore文 ...

  6. soap签名_签名SOAP消息–生成封装的XML签名

    soap签名 数字签名是使数字内容可信的一种广泛使用的机制. 通过为某些内容生成数字签名,我们可以让另一方能够验证该内容. 通过此验证,它可以保证在我们签名后不会更改. 通过这个示例,我将分享如何为S ...

  7. 签名SOAP消息–生成封装的XML签名

    数字签名是使数字内容真实可信的一种广泛使用的机制. 通过为某些内容生成数字签名,我们可以让另一方能够验证该内容. 通过此验证,它可以保证在我们签名后不会更改. 通过这个示例,我将分享如何为SOAP信封 ...

  8. 安卓生成keystore和查看keystore

    ----------------重要通知-------------- Hello,本人的博客文章已更新至个人网站(www.jonexu.cn) 文章中有问题可以到网站联系博主,后续新的文章也将更新在个 ...

  9. linux 查看主机版本,Linux下如何查看版本信息的方法步骤

    Linux下如何查看版本信息, 包括位数.版本信息以及CPU内核信息.CPU具体型号等等,整个CPU信息一目了然. 1.# uname -a   (Linux查看版本当前操作系统内核信息) Linux ...

最新文章

  1. 对光照、阴影和反光具有鲁棒性的变化检测算法及实现
  2. 如何制作自己的静态库
  3. scrapy Crawl_spider
  4. SSH dao层异常 org.hibernate.HibernateException: No Session found for current thread
  5. UITableViewCell不重用代码
  6. how to be successful with salesforce
  7. VR:下一个技术风口
  8. Julia也能做爬虫?可以,但没必要
  9. 证书重新生成_Kubernates证书过期问题的解决
  10. 在线打字练习网站介绍
  11. 北斗芯片是如何决定着北斗产业的未来?
  12. linux开发板添加qt库文件_关于QT程序下载到开发板的一些步骤总结
  13. uni-app入门教程
  14. 天空里的云偶遇 彩虹做成衣裳也要用心呵护——潮港城的茶点,好芒果的冰饮...
  15. tp5html的if判断,TP5 判断方法
  16. 移动拨号上网开热点(不是360开热点,而是使用电脑自带的热点功能)详解
  17. 淘宝店铺宝贝转化率该如何提升
  18. DDD的常见问题、争论以及局限性
  19. 美女主持直播,被突发意外打断!湾区网友却高喊: 我懂!超甜
  20. 夏天地板保养的注意事项

热门文章

  1. Excel2003Training(1)-浅谈Excel的5个小技巧
  2. 云计算技术都要学什么?教你分清公有云、私有云和混合云
  3. Codeforces Round #546 (Div. 2) B. Nastya Is Playing Computer Games
  4. Java编程配置思路详解
  5. 清理Oracle安装目录里的一些日志信息
  6. “2016智能终端峰会新闻发布会暨移动信息化可信选型认证结果发布会” —— 在京成功召开...
  7. express 框架中的参数小记
  8. 冒烟测试与回归测试的区别
  9. memcached完全剖析系列教程《转》 memcached完全剖析系列教程–2.理解memcached的内存存储...
  10. Oracle RMAN中备份表空间名为'TEST'时需要注意的问题