还望支持个人博客站:http://www.enjoytoday.cn
参考博客:http://www.enjoytoday.cn/posts/203

为什么要签名

在介绍签名方法之前,首先我们来了解下,android系统为何需要我们签名后才可安装运行apk,其实这个签名和我们生活中的信用卡签名并无本质不同,就是一个对apk身份的验证,对于apk的一种担责行为。apk前面采用加密算法(RSA或DSA)对apk加密验证以确保在apk安装运行之前的文件完整性和未被修改。

签名前的准备

签名其实说白了即使对文件进行加密,将整个文件给”锁起来”了。因此, apk前面前需要获取两个文件,一个是android已经编译成功 的apk文件,另一个即使apk的签名文件。当然,签名前你还是需要知道你的签名文件的签名基本参数的:别名和签名密码。所以在签名之前,我们需要做两个最基础的事情:一是编译生成apk文件,二是创建私有签名文件,apk文件编译胡不多赘述,主要来说如何生成一个签名文件。

签名文件的生成

签名文件的生成方式主要有两种,一种是工具式的可视化生成,一种是通过命令行方式生成。下面我主要介绍通过命令行方式生成一个前面文件*.jks.

命令行生成的前提是需要你已经成 功安装配置java运行时环境,生成签名证书使用的是java源码工具下的一个工具keytool,命令格式如下:

#keytool -genkey -alias keyname -keyalg RSA --validity    20000 -keystore keyname.jks -storepass storepass -keypass keypass

各个选项的含义如下所示:

  -genkey        : 生成.jks或.keystore文件
  -alias         :签名文件的别名,若需要导入eclipse对应用进行签名则需要设置为 androiddebugkey
  -keyalg        : 加密方式
  -validity      : 有效时间
  -keystore      :  .jks或.keystore文件名
  -storepass     :store仓库密码,若需要导入eclipse对应用进行签名则需要设置为android
  -keypass       :  .jks或.keystore文件的密码

命令运行后会显示一些需要你输入的信息,包括公司信息、个人地址、个人姓名等相关信息,显示如下:

最后确认后就会在当前目录生成一个keyname.jks前面文件,如此就完成了一个签名文件的创建过程 。

开始签名

命令行签名使用的是java自带工具jarsigner签名工具签名,签名使用使用的命令如下:

#jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore keyname.jks -signedjar. test.tspk  release.apk   keyname

如此就可成功将test.apk签名成功,输出签名成功后的apk文件release.apk.

查看签名

签名后我们可以通过keytool工具对我们的apk进行查看签名信息,结果会输出你签名时填入的相关信息,以及一个生成的sha1和md5值,命令如下:

#keytool -printcert -jarfile release.apk

结果显示如下:


签名者 #1:签名:所有者: C=US, O=Android, CN=Android Debug
发布者: C=US, O=Android, CN=Android Debug
序列号: 1
有效期开始日期: Sun May 15 02:14:14 CST 2016, 截止日期: Tue May 08 02:14:14 CST 2046
证书指纹:MD5: 7C:79:6B:BD:C5:CE:9C:A5:BB:3F:F2:20:39:6A:A7:B5SHA1: 4A:00:08:BE:CC:A6:9A:CE:7D:82:F5:84:C1:31:C6:19:99:12:84:53SHA256: A1:36:20:F4:E3:32:9C:32:F7:28:B1:8A:EB:15:42:37:1C:A5:10:47:47:A1:E2:12:AB:29:C5:62:35:05:C4:B3签名算法名称: SHA1withRSA版本: 1

转载于:https://www.cnblogs.com/amiko/p/7906232.html

Android apk签名方法介绍相关推荐

  1. Android apk签名方法

    为了保证每个应用程序开发商合法ID,防止部分开放商可能通过使用相同的Package Name来混淆替换已经安装的程序,我们需要对我们发布的APK文件进行唯一签名,保证我们每次发布的版本的一致性(如自动 ...

  2. android apk 签名方法,[转载]Android apk签名的两种方法

    为了保证每个应用程序开发商合法ID,防止部分开放商可能通过使用相同的Package Name来混淆替换已经安装的程序,我们需要对我们发布的APK文件进行唯一签名,保证我们每次发布的版本的一致性(如自动 ...

  3. Android apk签名获取方法

    Android apk签名获取的一种方法,供大家参考 Windows(黑窗口)或Mac(终端)获取apk的签名: 1,先获取.jks文件路径(复制好备用) 2,在黑窗口或终端中输入 keytool - ...

  4. Android确认apk签名、给apk签名方法

    1.确认apk签名方法:jarsigner -verify -verbose -certs ${your_apk}>log.txt 2.给apk签名: java -jar out/host/li ...

  5. Android APK 签名比对

    Android APK 签名比对 转载请注明出处:http://www.blogjava.net/zh-weir/archive/2011/07/19/354663.html Android APK  ...

  6. Android APK签名原理

    Android APK 签名原理涉及到密码学的加密算法.数字签名.数字证书等基础知识,这里做个总结记录. 非对称加密 需要两个密钥,一个是公开密钥,另一个是私有密钥:一个用作加密的时候,另一个则用作解 ...

  7. 对Android apk 签名 --apksigner

    Android自签名方法,仅作记录. 因 apksigner 签名工具支持V1和V2签名,所以选用它 进行手动签名: 步骤如下: 切到Android SDK/build-tools/SDK版本, 输入 ...

  8. Android APK签名 JKS 密钥库使用专用格式。建议使用 “keytool -importkeystore -srckeystore E:\xxxxxx- pkcs12“ 迁移到行业标准格式

    Android Studio中进行签名 转载地址:Android APK签名 JKS 密钥库使用专用格式.建议使用 "keytool -importkeystore -srckeystore ...

  9. android软件更新模块实现的技术和方法,Android APK签名原理及方法

    一 Android签名机制及原理 Android系统在安装APK的时候,首先会检验APK的签名,如果发现签名文件不存在或者校验签名失败,则会拒绝安装,所以应用程序在发布之前一定要进行签名.给APK签名 ...

最新文章

  1. 导师吐槽大会开始:自己招的学生,哭着也要带完
  2. Java 性能优化的五大技巧
  3. java调用百度推送详解,关于百度推送,请教一下大家
  4. CSS:给 input 中 type=text 设置CSS样式
  5. 哪些CSS是可以被继承的--简单整理
  6. 硬盘的原理以及SQL Server如何利用硬盘原理减少IO
  7. android 置顶窗口位置,Android 滑动悬浮置顶指南
  8. android复位机器人图片,安卓(Android)新图标!小绿机器人换脸啦
  9. 开发者需要理解的分布式原语
  10. 由于不能随便改路径,所以写在这里
  11. 飞秋(FeiQ)2012版择日发布
  12. SPring cloud (3)A Ribbon 负载均衡 配置初步
  13. Oracle 修改密码 解锁
  14. 一文读懂PCB品质体系认证
  15. Loadrunner教程–常用操做流程
  16. 新闻发布系统数据库设计
  17. 简单3小步,轻松搞定PS证件照换底色(有手就行)
  18. 如何搭建Telegram群机器人
  19. lodop打印html包含图片,使用lodop.js打印控件打印table并分页等
  20. :要求查询出每一个雇员的编号,姓名,工资,领导的姓名,部门名称及位置,工资所在公司的工资等级

热门文章

  1. 国外top10的aPaaS平台
  2. 大连有望设立第五个国家级新区
  3. 三枪齐发!中国移动正式吹响“5G集结号”
  4. 对软件工程师的理解_为什么需要作为软件工程师理解软件要求
  5. mysql千万级数据怎么删除,MySQL 快速删除大量数据(千万级别)的几种实践方案详解...
  6. 数字音乐市场上两大巨头的版权之争
  7. gis可达性分析步骤_CYD软件技能 | 城市动态设计分析制图 Design for the Urban Dynamics...
  8. Rust AES加密、解密工具
  9. 工业网站建设,工业制造网站制作方案
  10. OOA/OOD/OOP的区别