胖蔡说技术
随便扯扯

Android apk签名方法介绍

为什么要签名

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

命令运行后会显示一些需要你输入的信息,包括公司信息、个人地址、个人姓名等相关信息,显示如下: ![这里写图片描述](https://img-
blog.csdn.net/20170530103613375?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hmMTE0MjE1MjEwMQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
最后确认后就会在当前目录生成一个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:B5
      SHA1: 4A:00:08:BE:CC:A6:9A:CE:7D:82:F5:84:C1:31:C6:19:99:12:84:53
      SHA256: 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
 
赞(0) 打赏
转载请附上原文出处链接:胖蔡说技术 » Android apk签名方法介绍
分享到: 更多 (0)

请小编喝杯咖啡~

支付宝扫一扫打赏

微信扫一扫打赏