2019独角兽企业重金招聘Python工程师标准>>>

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/u/818848/blog/483540

Android签名机制:生成keystore、签名、查看签名信息相关推荐

  1. Android 打包签名 从生成keystore到完成签名

    首先,我们需要一个keystore,当然已经有了的话就不用这一步了: cmd下: 进入到jdk的bin目录,这样的话,android.keystore文件就会生成在这个目录下,签名的时候我们需要这个文 ...

  2. Android签名机制及PMS中校验签名

    一.签名机制 众所周知,在Android系统中,应用想要安装到设备中,必须要有签名才行,及时是debug的时候,开发工具也会对要运行的应用自动签名,那么我们先来了解一下这个签名究竟是什么. 首先And ...

  3. 生成keystore和apk签名

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

  4. 微信注册崩溃?appid签名无法注册or如何查看签名是否一致?如何注册appid?jks和keystore的区别?

    跑通微信,这一篇就够了. 一.出现微信注册register(APP_ID)崩溃?或appid无法注册到微信? 解决办法: 1.首先用清理软件彻底清理一下微信缓存吧,可能是因为之前的签名文件已经注册到微 ...

  5. 安卓生成keystore和查看keystore

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

  6. 《Android studio 创建生成keystore SHA1值的申请 高德地图key值申请 android studio 打包生成apk》

    开发背景:目前做车载项目,领导要求用高德地图.整理了一下,差不多就是下面的目录: 一.创建生成keystore: 二.SHA1值的申请: 三.高德地图key值申请: 四.android studio ...

  7. android jks sha1,获取Android SHA1 、生成jks密钥、签名Apk

    获取应用包名. 打开Android 应用工程的 AndroidManifest.xml配置文件,package 属性所对应的内容为应用包名. 获取 Sha1 值. 目前(2016/06/06)为止,各 ...

  8. java 微信jssdk签名_JAVA生成微信JSSDK接口签名

    签名生成规则如下: 参与签名的字段包括有效的 jsapi_ticket(获取方式详见微信 JSSDK 文档), noncestr (随机字符串,由开发者随机生成),timestamp (由开发者生成的 ...

  9. 微信jssdk签名java_JAVA生成微信JSSDK接口签名

    签名生成规则如下: 参与签名的字段包括有效的 jsapi_ticket(获取方式详见微信 JSSDK 文档), noncestr (随机字符串,由开发者随机生成),timestamp (由开发者生成的 ...

  10. 我的世界服务器精灵模型文件在哪,[娱乐|机制]PokemonInfo — GUI界面查看精灵信息 , 精灵变照片[1.12.2] - 服务端插件 - Minecraft(我的世界)中文论坛 -...

    老板还报错 [23:05:03] [Server thread/INFO]: [PokemonInfo] Disabling PokemonInfo v1.1 [23:05:06] [Server t ...

最新文章

  1. 斯坦福大学机器学习第十课“应用机器学习的建议(Advice for applying machine learning)”
  2. Webservice入门教程_用CXF编写基于Spring的WebService
  3. OpenGL之控制渲染图形的移动
  4. Cloud for Customer UI里点了超链接后的跳转处理
  5. 思维导图一定要用计算机来完成吗,计算机绘制思维导图有什么优势
  6. CSS浮动属性Float到底什么怎么回事,下面详细解释一下
  7. MongoDB系列之——安装和启动
  8. QML工作笔记-Key Element的使用
  9. Java网络编程案例--CS模型的简单实现
  10. MiluGPS(迷路者GPS导航软件)
  11. 高通Android camera驱动框架
  12. Android Rect介绍
  13. Matlab在工业机器人中的运用,基于MATLAB的工业机器人建模与仿真.docx
  14. Nature重磅综述;关于机器学习应用单细胞组学+RNA-seq,你想知道的都在这
  15. 学生用计算机怎么恢复出厂设置,电脑怎么恢复出厂设置
  16. 【Novel AI】基于Koishi的QQ群配置AI绘图机器人方法
  17. java 过滤所有特殊字符
  18. chrome五十大实用插件集合!
  19. 菌群最新资讯热评 | 菌群与癌症免疫疗法,菌群与消毒剂
  20. vim使用自定义snippets

热门文章

  1. 安卓 camera 调用流程_音视频开发之旅(四)Camera视频采集
  2. java 二进制 归属权限_java 二进制 权限管理
  3. 硬盘测试软件di,磁盘检测(Folder Size Professional)
  4. Javascript ES6 Promise同步读取文件(使用async、await)
  5. 服务器上把计算机放桌面,远程服务器这么显示在电脑桌面
  6. python中logging模块详解_python logging日志模块详解
  7. vscode svn使用_使用Typescript封装Vue组件
  8. windows10 1903中vmware无法运行解决方法和15.5安装
  9. 禁止ultraiso开机自动加载镜像
  10. 不只有BERT!盘点2018年NLP令人激动的10大想法