APP为什么签名,使用keytool jarsigner进行签名
签名(sign):在应用程序的特定字段写入特定的标记信息,表示该软件已经通过了签署者的审核。过程:使用私有密钥数字地签署一个给定的应用程序
作用:
识别应用程序作者
检測应用程序是否发生改变
有种程序升级。当新程序与旧程序签名不一致时,会发生冲突觉得不是同一APP,,要求新程序改包名
。
。。
keytool 生成签名私钥命令
keytool -genkey -v -keyalg DSA -keysize 1024 -sigalg SHA1withDSA -validity 10000 -keystore Test.keystore -alias devel -keypass 123456 -storepass 123456
參数:
Keytool 选项 | 描写叙述 |
---|---|
-genkey |
产生一个键值对(公钥和私钥) |
-v |
同意动作输出 |
-alias<alias_name> |
键的别名。
仅仅有前八位字符有效。 |
-keyalg |
产生键的加密算法。支持DSA和RSA。 |
-keysize |
产生键的长度。假设不支持,keytool用默认值1024 bits.通常我们用2048 bits 或更长的key。 |
-dname |
专有名称。描写叙述谁创建的密钥。 该值被用作自签名证书的颁发者和主题字段。注意你能够不在命令行指定。假设没有指定keytool会提示你(CN, OU, and so on)。 |
-keypass |
键的password。 主要为了安全起见,假设没提供。keytool会提示你输入。 |
-validity |
键的有效期,单位:天 Note: A value of 10000 or greater is recommended. |
-keystore.keystore |
用于存储私钥的文件。 |
-storepass |
私钥存储文件的password。 主要为了安全起见,假设没提供。keytool会提示你输入。 这个password不会存储在你的shell历史记录中。 |
jarsigner使用私钥签名
jarsigner -verbose -sigalg SHA1withDSA -digestalg SHA1 -keystore Test.keystore -storepass 123456 test.apk devel
參数:
Jarsigner 选项 | 描写叙述 |
---|---|
-keystore.keystore |
包括你私钥的存储文件 |
-verbose |
显示输出动作。 |
-sigalg |
签名算法,用 SHA1withRSA . |
-digestalg |
消息摘要算法。用 SHA1 . |
-storepass |
存储文件的password。 主要为了安全起见,假设没提供。jarsigner会提示你输入。这个password不会存储在你的shell历史记录中。 |
-keypass |
私钥的password。 主要为了安全起见。假设没提供,jarsigner会提示你输入。 这个password不会存储在你的shell历史记录中。 |
最新文章
- 美团大众点评服务框架Pigeon
- Understanding RabbitMQ Exchange &; Queue
- Windows下Nginx Virtual Host多站点配置详解
- The Cow Lexicon
- 自动化测试(三):QTP参数化
- JavaScript高级程序设计—阅读笔记(第一部分)
- 【转】从QA到EP
- ZOJ-2112-Dynamic Rankings(线段树套splay树)
- rownum使用方法
- javaScript执行环境、作用域链与闭包
- NOIP2017感悟
- java中进程与线程的区别
- ASP.NET中出现内存溢出错误System.OutOfMemoryException
- 二十一、springcloud(七)服务网关zuul
- 利用Linux的硬连接删除MySQL大文件
- openerp学习笔记 视图样式(表格行颜色、按钮,字段只读、隐藏,按钮状态、类型、图标、权限,group边距,聚合[合计、平均],样式)
- Chapter 8 面向对象设计
- DButils分析
- 一起来做Chrome Extension《一些问题》
- Spring-ApplicationContext容器
热门文章
- QMap的性能,只要超过10个元素,就被QHash彻底拉开差距
- 基于mkdocs-material搭建个人静态博客
- 软件需求规范说明 (Software Requirements Specification, 简称SRS)
- Aspose.Words将Word模板打印出来
- 让break跳出外层循环的方法
- ERROR 1840 (HY000) at line 24: @@GLOBAL.GTID_PURGED can only be set when @@GLOBA
- MyProject
- PLSQL 11注册码
- 逐步理解Java中的线程安全问题
- (转)基于MVC4+EasyUI的Web开发框架形成之旅--总体介绍