创建并验证app签名

app签名基于jar签名,jar签名主要用于验证java class文件开发者。但是App签名跟jar签名还是有些区别的,App签名对一些元数据和资源也进行了签名和验证。

首先需要在一个可运行apk文件中删除 meta-inf 文件夹。

可以使用winrar打开apk文件,然后删除 meta-inf 文件

使用keytool工具生成一个密钥存储器 keystore来存放签名app用到的私钥。

keytool -genkey -v -keystore 1.key -alias miyue -keyalg rsa -keysize 2048 -validity 100

参数意义:

-keystore:keystore 名称

-alias:密钥别名

-keyalg:密钥算法

-keysize:密钥大小

-validity:有效期天数

生成密钥时需要记住自己创建的口令,并且生成后将密钥放在安全的位置。

使用生成的密钥去对apk进行签名,使用工具jarsigner完成,命令如下:

jarsigner -verbose -sigalg md5withrsa -digestalg sha1 -keystore 1.key c3.apk miyue

参数意义:

-verboe:输出详细信息

-sigalg:签名算法

-digestalg:hash算法

-keystore:密钥存储器名称

-[c3.apk]:需要签名的apk名称

-[miyue]:密钥别名

可以看到签名时新建了 meta-inf 文件夹以及其中的证书相关文件

至此,对apk进行了签名,也可以看做是对原有apk进行了签名更新或替换

下一步对签名的apk进行验证,命令比较简单

jarsigner -verbose -verify c3.apk

可以查看到对哪些资源文件的验证以及验证内容

您可能还喜欢...