Android数字签名解析(一)
一、数字签名概述
所谓"数字签名"就是通过某种password运算生成一系列符号及代码组成电子password进行签名,来取代书写签名或印章。
数字签名有两种功效:一是能确定消息确实是由发送方签名并发出来的。由于别人假冒不了发送方的签名。二是数字签名能确
定消息的完整性。由于数字签名的特点是它代表了文件的特征。文件假设发生改变,数字签名的值也将发生变化。
眼下在android系统中,在两个地方使用了数据签名,一是应用程序。二是OTA升级。
应用程序中使用数字签名主要用来标识程序的唯一性。OTA升级中使用数字签名主要用来验证数据的完整性。
1、用Java中的数字签名工具keytool签名首先要有一个keystore文件。keystore是由jdk自带的工具keytool产生。window上生成的详细方式例如以下:
開始-〉执行->cmd->cd到你安装的jdk下的bin文件夹下, 然后输入
keytool -genkey -alias test.keystore -keyalg RSA -validity 10000 -keystore test.keystore
然后按回车首先提示输入password。 然后会确认你的password。之后会依次叫你输入相关信息如姓名,组织单位等之后就是输入test.keystore 主password(如果和keystorepassword同样。按回车)我在这里设和keystore同样,之后你就会在bin文件夹下找到生成的test.keystore。
相关參数意义例如以下:
-alias 后跟的是别名, 这里是test.keystore-keyalg是加密方式这里是RSA-validity是有效期这里是10000天-keystore就是要生成的keystore的名称,这里是test.keystore
keystore生成后。如今能够进行签名了, 如今把你要进行签名的apk放到一个当前文件夹下。然后利用jdk提供的工具jarsigner.exe进行签名,详细操作例如以下:
jarsigner -verbose -keystore test.keystore -signedjar new.apk test.apk test.keystore
2、在源代码下进行签名
Android源代码文件夹development\tools下有make_key脚本, 用来生成一个密钥对。 这个密钥对与keytool生成的key在形式上不一样,但内容和作用是一致的。
生成公钥:
openssl genrsa -3 -outtestkey.pem 2048
转换成X509证书格式:
openssl req -new -x509 -key testkey.pem -out testkey.x509.pem -days 10000-subj ‘xx’
生成私钥:
openssl pkcs8 -in testkey.pem-topk8 -outform DER -out testkey.pk8 –nocryptAPK签名命令:
java -jar signapk publickey.x509[.pem]privatekey.pk8 input.apk output.apk
升级包进行签名: (注:理论上用keytool应该也能对升级包进行签名。但眼下我还不知道详细步骤)
java -jar signapk –w publickey.x509[.pem]privatekey.pk8 input.zip output.zip
Android数字签名解析(一)的更多相关文章
- Android数字签名解析(三)
在刚才開始学习android数字签名的相关知识点的时候,被资料中出现的keystore.x509.密钥对.debug.keystore弄的晕头 转向.经过一段时间的了解,总算明确一些. 一.make_ ...
- Android数字签名解析(二)
在Android数字签名解析(一)中,介绍了android进行签名的两种方式,当中用密钥对进行签名用到了signapk.jar这个java库. 以下我们就看看signapk签名实现过程,signapk ...
- Android数字签名
描述你对Android数字签名的理解? 数字签名就是为程序打上一个标记来作为自己的标识,是Android系统要求的,若一个Android程序没有经过数字签名,没办法安装到系统: 签名也是对apk的一种 ...
- android XMl 解析神奇xstream 六: 把集合list 转化为 XML文档
前言:对xstream不理解的请看: android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件 android XMl 解析神奇xs ...
- android XMl 解析神奇xstream 五: 把复杂对象转换成 xml ,并写入SD卡中的xml文件
前言:对xstream不理解的请看: android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件 android XMl 解析神奇xs ...
- android XMl 解析神奇xstream 四: 将复杂的xml文件解析为对象
前言:对xstream不理解的请看: android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件 android XMl 解析神奇xs ...
- android XMl 解析神奇xstream 三: 把复杂对象转换成 xml
前言:对xstream不理解的请看: android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件 android XMl 解析神奇xs ...
- android XMl 解析神奇xstream 二: 把对象转换成xml
前言:对xstream不理解的请看:android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件 1.Javabeen 代码 packa ...
- Android动画解析--XML
动画类型 Android的animation由四种类型组成 XML中 alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果 rotate 画面 ...
随机推荐
- 《The Python Standard Library》——http模块阅读笔记1
官方文档:https://docs.python.org/3.5/library/http.html 偷个懒,截图如下: 即,http客户端编程一般用urllib.request库(主要用于“在这复杂 ...
- nginx 模块介绍
nginx模块在编译文件下的odjs目录下 cat 查看ngx_modules.c文件 可以看到一些基本extern模块 常用标准模块 1. 性能相关配置 worker_processes numbe ...
- 如何发布一个包到npm && 如何使用自己发布的npm包 && 如何更新发布到npm的package && 如何更新当前项目的包?
如何发布一个包到npm First 在https://www.npmjs.com注册一个账号. Second 编辑好项目,文件大致如下: 其中,gitignore可以如下: .DS_Store nod ...
- win7与ubuntu双系统安装
机器型号:联想V470 对系统引导一直不是很明白,导致我出现几次失败. 一直挺喜欢ubuntu的,因为,第一我感觉它比较友好,第二我初次接触linux就是ubuntu,当初还是同学帮助我wubi进行安 ...
- ArrayList,LinkList,HashMap
ArrayList底层实现数组,这是ArrayList get()方法的源码,底层是数组 根据下标返回在数组中对应的位置 ,查询快,插入慢 // Positional Access Operation ...
- 吴恩达《Machine Learning Yearning》总结(11-20章)
11.何时修改开发集.测试集和度量指标 开展一个新项目,尽快选好开发集和测试集:例子,根据度量指标A分类器排在B分类器前面,但是团队认为B分类器在实际产品上优于A分类器,这时就需要考虑修改开发集和测试 ...
- 用ping命令简单的测试 延时、抖动、丢包率
在DOS命令状态下输入 :ping 202.105.135.211 -t (连续的对该IP地址执行Ping命令,直到被用户以Ctrl+C中断)就会得到下面的结果:Pinging 202.105.135 ...
- JavaScript数据类型 数据转换
JavaScript数据类型分为两种:原始类型和对象类型,原始类型有:number(数字).string(文本).boolean(布尔值).null(空).undefined(未定义):对象类型有:A ...
- node.js之forEach
forEach用法: var array1=[1,2,3]; array1.forEach(function(item,index){ console.log(item+'---'+index); } ...
- Trim a Binary Search Tree
Given a binary search tree and the lowest and highest boundaries as L and R, trim the tree so that a ...