Java与apk签名有关的那多少个概念与命令

 

Key password: “android”

(2)不可逆性,通过摘要不可能推算出音信我;

3、数字证书-Certificate

作用:只能保证信息的完整性,不可能保证信息的防篡改。使用情形:文件下载的MD5校验。

翻看keystore公钥证书消息: keytool -list -keystore xxx.keystore -alias
xxx -rfc

CERT.SF —— 保存MANIFEST.MF
的摘要值以及MANIFEST.MF中每一个摘要项的SHA1并base64后记录。

音讯摘要算法:MD5、SHA-0、SHA-1

6、查看签名音信

MANIFEST.MF —— 包含了input.jar所有文件内容的摘要值

音讯摘要:在音讯数据上,执行一个一头的hash函数,生成一个原则性长度的hash值,这些Hash值就是音信摘要,也成为数字指纹。

 

signapk —— 是专程为Android应用程序apk举行签约的工具。

查阅apk签名消息:jarsigner -verify -verbose -certs xxx.apk

 

数字签名原理:音信发送者将消息摘要用私钥加密,与原文一起传送给接收者。讯息接收者用公钥才能将信息摘要解密,再选用同一的Hash函数对收取原文统计暴发一个信息摘要,比较两者是否同样。基于非对称加密算法的数字签名保证防篡改,音信摘要保证完整性。

一、概念篇

双方的签署算法没有什么样界别,首倘若签约时拔取的文书不一样。

JDK 1.7,需要添加:-digestalg SHA1 -sigalg
MD5withRSA

(1)默认debug.keystore消息如下:

Keystore password: “android”

jarsign签名文件:文件后缀名是签约算法,文件名是keystone别名。

(2)使用自带debug.keystore重新签名APK文件。

 

二、Android APK二种签名模式

 

jarsigner  -digestalg SHA1 -sigalg MD5withRSA -keystore debug.keystore
-storepass android -keypass android xxx.apk androiddebugkey

apksign 工具签名时利用的pk8、x509.pem文件

Keystore name: “debug.keystore”

加密算法普遍存在统计耗时较长的瓶颈,MD5、SHA等音讯摘要算法则不设有该问题,只针对信息摘要举办签字,可以大大收缩加密内容,进步全方位数字签名过程的频率。

2、keystore和pk8、x509.pem的区别

(3)即便改动了音信,摘要会发生变化(长明文生成短摘要的Hash必然会碰上);

 

3、Android中是同意利用两个keystore对apk举行签字的。

publickey.x509.pem ——包含证书和证书链,包含了公钥和加密算法;

证书所有者 Subject

4、apksign签名

1、消息摘要-Message Digest

(1)无论输入信息多少长度,统计出来的信息摘要长度总是永恒的;

CERT.RSA —— 保存了签约和公钥证书。签名用到的摘要消息就是CERT.SF内容。

 

数字签名:新闻发送者用自己的私钥对信息摘要加密爆发的一个字符串,加密算法确保别人不可以伪造生成这段字符串。这段数字字符串也是对信息发送者暴发音讯真实的一个管用认证,故称数字签名。

数字签名使用的算法

查看keystore信息:keytool -list -keystore xxx.keystore -alias xxx -v

数字证书是一个经证书授权核心数字签名的隐含公开密钥拥有者消息以及公钥的公文。

2、数字签名-Signature

apksign签名之后的apk中的META-INF写死了是CERT的名字。

CN: “CN=Android Debug,O=Android,C=US”

jarsian
工具签名时利用的是keystore文件。Eclipse的Debug包默认使用jarsign工具签名。

数字签名是非对称机密算法+数字摘要技术的整合。

音讯摘要特点:

 

备注:Android
APK中的CERT.RSA是自签定的,并不需要第三方权威机构发表仍然申明,用户可以在地面机械生成这些自签署证书。

信息发送方的公钥

jarsign —— 是Java本身自带的一个工具,能够对jar举行签字。

Key alias: “androiddebugkey”

5、系统默认debug.keystore

想想:为啥只对音信摘要举办数字签名?

1、jarsign和apksign工具

证件有效期Validity

apk中签名文件:

eg: apksign publickey.x509.pem privatekey.pk8 input.apk output.apk

作用:保证消息完整性、也足以防篡改。

说到底保存在CERT.RSA中的是CERT.SF的数字签名,签名使用privateKey生成,签名算法会在publicKey中定义,同时会把publicKey保存在CERT.RSA中,即CERT.RSA包含了署名和签名用到的证件,且证书要求是自签约的。

privatekey.pk8 —— 私钥

数字证书包含内容:

证件发布单位 Issuer

相关文章