APK签名及查看签名信息

2 篇文章 0 订阅
2 篇文章 0 订阅

APP在安装前,需要进行签名,keytool工具可以生成证书,通过生成的证书来进行签名。

keytool工具在javaJDK中有,在android开发SDK中也有这个工具;

keytool -genkeypair -alias mykey -keyalg RSA -keystore mykey.keystore  -dname "CN=localhost, OU=localhost, O=localhost, L=SH, ST=SH, C=CN" -keypass 123456 -storepass 123456 -validity 180

翻译成人话就是:创建一个新的秘钥,别名是mykey,加密算法是RSA,保存路径是当前路径,名字是mykey.keystore,创建此证书的机构是localhost,组织是localhost,组织名称是localhost,地点是localhost,城市是localhost,国家是localhost,密码是123456,指定密码条目,保存密码时间为180天

参数说明:

-genkeypair  表示要创建一个新的密钥

-dname  表示密钥的Distinguished Names,  表明了密钥的发行者身份

  CN=commonName      注:生成证书时,CN要和服务器的域名相同,如果在本地测试,则使用localhost

  OU=organizationUnit

  O=organizationName

  L=localityName

  S=stateName

  C=country

-keyalg    使用加密的算法,这里是RSA

-alias     和keystore关联的别名,这个alias通常不区分大小写

-keypass      私有密钥的密码,这里设置为 123456

-keystore     密钥保存在D:盘目录下的mykeystore文件中

-storepass   存取密码,这里设置为changeit,这个密码提供系统从mykeystore文件中将信息取出

-validity    该密钥的有效期为 180天 (默认为90天)

下面是各选项的缺省值。 

-alias "mykey"

-keyalg "DSA"

-keysize 1024

-validity 90

-keystore 用户宿主目录中名为 .keystore 的文件

-file 读时为标准输入,写时为标准输出 

cacerts证书文件(The cacerts Certificates File)

该证书文件存在于java.home\jre\lib\security目录下,是Java系统的CA证书仓库 

直接执行就这样的:

keytool可以查看证书的信息:

keytool -list -v -keystore mykey.keystore

接着对编译好的APP进行签名:

使用工具jarsigner,这个工具和keytool应该在同一个目录下面,

jarsigner -verbose -keystore [keystorePath] -signedjar [apkOut] [apkin] [alias]

jarsigner.exe -verbose -keystore mykey.keystore -signedjar after.apk before.apk mykey

这命令翻译成人话:对APP进行签名,签名的时候输出签名的详细信息,秘钥证书的位置在哪里,签名后的APP存在当前文件夹下after.apk,需要签名的APP存在当前文件夹下before.apk,秘钥证书的别名是mykey

命令格式及参数意义:

-verbose  输出签名过程的详细信息

-keystore [keystorePath]   密钥的库的位置

-signedjar [apkOut]   签名后的输出文件名

apkin  待签名的文件名

alias 证书别名

开始进行签名:

签名完成:

前面后生成after.apk

查看前面信息:

使用keytool工具进行查看APP签名信息,使用签名前和签名后的APP进行一个对比:

keytool -printcert -jarfile app.apk

签名前的APP:提示不是已签名jar文件

签名后的APP:直接输出了签名信息:

还有在使用apktool对APP进行反编译后,APP的文件夹中会有CERT.RSA文件:

使用keytool查看:

keytool.exe -printcert -file CERT.RSA

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值