[轉載]Android與Java簽名機制與API

簽名的兩種方式

 

  1. 利用keystore文件進行簽名
  2. 利用.pk8加上.pem進行判斷

 

講解android簽名過程文章

 

Android code signing:自備梯子
Signature & Certification

 查看包簽名狀態 jarsigner -verify -verbose -certs V2.1.0-E1-20130804.0535.zip

 

如何找到簽名apk包的簽名

 

unzip -q -c test.apk META-INF/CERT.RSA|openssl pkcs7 -inform DER -print_certs -out cert.pem
該命令會生成cert.pem文件,文件的樣式是:

subject=/C=1111/ST=111/L=111/O=111/OU=111/CN=111
issuer=/C=1111/ST=111/L=111/O=111/OU=111/CN=111
-----BEGIN CERTIFICATE-----
MIICIzCCAYygAwIBAgIEUiBjKzANBgkqhkiG9w0BAQUFADBVMQ0wCwYDVQQGEwQx
MTExMQwwCgYDVQQIEwMxMTExDDAKBgNVBAcTAzExMTEMMAoGA1UEChMDMTExMQww
CgYDVQQLEwMxMTExDDAKBgNVBAMTAzExMTAgFw0xMzA4MzAwOTE3MzFaGA8yMDY4
MDYwMjA5MTczMVowVTENMAsGA1UEBhMEMTExMTEMMAoGA1UECBMDMTExMQwwCgYD
VQQHEwMxMTExDDAKBgNVBAoTAzExMTEMMAoGA1UECxMDMTExMQwwCgYDVQQDEwMx
MTEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAJcq0GbxEn1eeNkXne/7pnSl
6wqAaAp6mQqsDkzRBv8fuPE6lL4IObGQdgogve+B9UwbBW1l6xdCIvNlTjqKCyUs
/D+jyhwCdKIrg3L5wUqvr3cfsstk0leVZElLZFYMxOIWajv9oB/eVxe8xxYTSUNb
4uRIUmK5J5K/nBtYwlCxAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAkCBHUxAzU3hr
F7wuwlQbqju9njkbzGybq6P7A4WPXOh7RsXhdYYPwO74DwlOM1NySDOLQMM0PZqy
sZ3wM9iDURTn1OVrrUC1DcrritYghtSol11Z73G51Pr5bTzYN6swQ2ukFGAw4fdU
AXxAZmLtive5XmPBKQguL0IiFsqZzKg=
-----END CERTIFICATE-----

 

 

其中BEGIN CERTIFICATE和END CERTIFICATE即爲所需簽名信息

 

keystore文件轉爲pem文件

 

Converting a .jks Key Store to a .pem Key Store:這篇文章講述瞭如何將keystore文件轉換爲pem文件
其中的主要命令就是

 

keytool -importkeystore -srckeystore client.jks -destkeystore client.pkcs -srcstoretype JKS -deststoretype PKCS12

 

其中.jks文件即爲我們常用的.keystore文件

 

openssl pkcs12 -in client.pkcs -out client.pem

 

如何判斷簽名

 

判斷的方式就是判斷利用簽名apk包生成的pem簽名與我們自己的pem簽名是否一致
判斷的腳本可以參見附件judge.sh
主要的用法:.

/judge.sh -z xxx.apk -f xxx.pem -d dir


其中-z選項: 後面跟的是你的簽名的apk文件
-f選項: 後面跟的是你自己的pem文件「
-d選項: 後面跟的是你的包含pem文件的文件夾
注意:
-z選項必填
-f 和 -d二者選項至少包含一個或者都存在

 

發佈了182 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章