通过keytool获取key发布版、开发版SHA1,用jarsigner工具进行签名

获取key发布版、开发版SHA1
Keytool 是一个Java数据证书的管理工具 ,此工具在JDK中自带

发布版SHA1:在cmd下 keytool -list -v -keystore D:\androidTask\keystore\HT.jks (发布版的签名)
开发版SHA1:在cmd下 keytool -list -v -keystore C:\Users\yourname\.android\debug.keystore(debug 版本的签名)

百度地图通过包名和签名文件.jks的SHA1值确定一个访问应用(AK) 这个AK用来给百度SDK读取之后可用百度的功能

用jarsigner工具进行签名
数字签名是一个根据某些数据(被“签名”的数据)和实体(人、公司等)的私钥计算出来的位字符串。与手写的签名一样,数字签名有很多有用的特性:

  • 其真实性可被校验,方法是使用与生成签名的私钥对应的公钥进行计算。
  • 它不可能被伪造(假设私钥没有泄露)。
  • 它是已签名数据的函数,因此不能被声明为其它数据的签名。
  • 已签名的数据不能被修改;如果被修改了,签名将不再被校验为可信的。

为了给文件生成一个实体的签名,该实体首先必须有一对与它相关的公/私钥对,以及一个或多个鉴别其公钥的证书。证书是由某个实体的数字化方式签发的声明,证明其它实体的公钥是某个特定的值。

jarsigner 使用来自密钥仓库的密钥和证书信息为 JAR 文件生成数字签名。密钥仓库是一个由私钥及其相关的 X.509 证书链(它鉴别相应公钥)组成的数据库。使用 keytool 实用程序来创建和管理密钥仓库。

jarsigner 使用实体的私钥创建签名。已签名的 JAR 文件包含(除了其它东西)一份来自密钥仓库的公钥(它对应于用于为该文件签名的私钥)的证书副本。jarsigner 可以使用已签名的 JAR 文件中的证书(在其签名块文件中)来校验其数字签名。

现在 jarsigner 只能为 JDK 的 jar 工具创建的 JAR 文件或 zip 文件签名(除了它们还有一个 META-INF/MANIFEST.MF 文件以外,JAR 文件与 zip 文件一样)。当 jarsigner 为 zip 文件签名时将自动创建这样的文件。

jarsigner 的缺省行为是签名 JAR(或 zip)文件。使用 -verify 选项将其替换为校验已签名的 JAR 文件。

cmd

jarsigner -verbose -keystore D:\androidTask\keystore\HT.jks -signedjar D:\androidTask\trunk\app\build\outputs\apk\signed.apk D:\androidTask\trunk\app\build\outputs\apk\app-release-unsigned.apk ht

以上命令的说明:
-verbose:指定生成详细输出
-keystore:.jsk文件路径
-signedjar:签名后的apk包 未签名的apk包 alias别名

只能签名未签名的包,如果签名一个已签名的包安装时会出问题
Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]
可以将已经签名的包解压删除META-INF文件夹后再进行签名

如何导出未签名apk包
运行assemble后在app\build\output\apk下有app-release-unsigned.apk

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值