你可能想知道 通過這篇文章可以解決哪些問題以及學(xué)到什么:
1.如果我們有一個(gè)應(yīng)用,如何查看應(yīng)用的簽名信息?
2.如果我們有簽名原始文件,如何查看簽名文件中的簽名信息?
這篇文章介紹了如何查看應(yīng)用和簽名文件中的簽名信息。
一、查看Android apk的簽名信息方式有兩種
1. 直接查看apk的簽名信息(推薦)
keytool -list -printcert -jarfile [APK文件路徑]
1)輸入命令查看 (wechat.apk)
Jackchen$ keytool -list -printcert -jarfile wechat.apk
簽名者 #1:
簽名:
所有者: CN=Tencent, OU=Tencent Guangzhou Research and Development Center, O=Tencent Technology(Shenzhen) Company Limited, L=Shenzhen, ST=Guangdong, C=86
發(fā)布者: CN=Tencent, OU=Tencent Guangzhou Research and Development Center, O=Tencent Technology(Shenzhen) Company Limited, L=Shenzhen, ST=Guangdong, C=86
序列號(hào): 4d36f7a4
生效時(shí)間: Wed Jan 19 22:39:32 CST 2011, 失效時(shí)間: Fri Jan 11 22:39:32 CST 2041
證書指紋:
SHA1: CC:80:D7:6A:A9:FE:94:EC:20:5E:F0:C3:36:BF:C4:24:59:6D:A2:90
SHA256: 0F:E4:FF:85:C2:15:91:83:96:DA:DC:7C:D8:CE:69:63:33:9A:F3:3D:37:75:1A:56:E5:4C:72:06:B6:3A:3C:7C
簽名算法名稱: SHA1withRSA (弱)
主體公共密鑰算法: 1024 位 RSA 密鑰 (弱)
版本: 3
Warning:
證書 使用的 SHA1withRSA 簽名算法被視為存在安全風(fēng)險(xiǎn)。此算法將在未來的更新中被禁用。
證書 使用的 1024 位 RSA 密鑰 被視為存在安全風(fēng)險(xiǎn)。此密鑰大小將在未來的更新中被禁用。
2. 通過apk中的RSA文件查看簽名信息
keytool -printcert -file [RSA文件路徑]
1) 先將apk后綴改為.zip,然后解壓,再進(jìn)入META-INF目錄,找到RSA文件
2) 輸入命令查看
Jackchen$ keytool -printcert -file COM_TENC.RSA
所有者: CN=Tencent, OU=Tencent Guangzhou Research and Development Center, O=Tencent Technology(Shenzhen) Company Limited, L=Shenzhen, ST=Guangdong, C=86
發(fā)布者: CN=Tencent, OU=Tencent Guangzhou Research and Development Center, O=Tencent Technology(Shenzhen) Company Limited, L=Shenzhen, ST=Guangdong, C=86
序列號(hào): 4d36f7a4
生效時(shí)間: Wed Jan 19 22:39:32 CST 2011, 失效時(shí)間: Fri Jan 11 22:39:32 CST 2041
證書指紋:
SHA1: CC:80:D7:6A:A9:FE:94:EC:20:5E:F0:C3:36:BF:C4:24:59:6D:A2:90
SHA256: 0F:E4:FF:85:C2:15:91:83:96:DA:DC:7C:D8:CE:69:63:33:9A:F3:3D:37:75:1A:56:E5:4C:72:06:B6:3A:3C:7C
簽名算法名稱: SHA1withRSA (弱)
主體公共密鑰算法: 1024 位 RSA 密鑰 (弱)
版本: 3
Warning:
證書 使用的 SHA1withRSA 簽名算法被視為存在安全風(fēng)險(xiǎn)。此算法將在未來的更新中被禁用。
證書 使用的 1024 位 RSA 密鑰 被視為存在安全風(fēng)險(xiǎn)。此密鑰大小將在未來的更新中被禁用。
其結(jié)果和“直接查看apk的簽名信息”一致。
二、查看簽名文件中的簽名信息
1. 查看x509.pem簽名文件的簽名信息 (編譯源碼時(shí)使用)
keytool -printcert -file [x509.pem文件路徑]
例如:keytool -printcert -file platform.x509.pem
Jackchen$ keytool -printcert -file platform.x509.pem
所有者: [email protected], CN=Android, OU=Android, O=Android, L=Mountain View, ST=California, C=US
發(fā)布者: [email protected], CN=Android, OU=Android, O=Android, L=Mountain View, ST=California, C=US
序列號(hào): b3998086d056cffa
生效時(shí)間: Wed Apr 16 06:40:50 CST 2008, 失效時(shí)間: Sun Sep 02 06:40:50 CST 2035
證書指紋:
SHA1: 27:19:6E:38:6B:87:5E:76:AD:F7:00:E7:EA:84:E4:C6:EE:E3:3D:FA
SHA256: C8:A2:E9:BC:CF:59:7C:2F:B6:DC:66:BE:E2:93:FC:13:F2:FC:47:EC:77:BC:6B:2B:0D:52:C1:1F:51:19:2A:B8
簽名算法名稱: MD5withRSA(禁用)
主體公共密鑰算法: 2048 位 RSA 密鑰
版本: 3
擴(kuò)展:
#1: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: 4F E4 A0 B3 DD 9C BA 29 F7 1D 72 87 C4 E7 C3 8F O......)..r.....
0010: 20 86 C2 99 ...
]
[[email protected], CN=Android, OU=Android, O=Android, L=Mountain View, ST=California, C=US]
SerialNumber: [ b3998086 d056cffa]
]
#2: ObjectId: 2.5.29.19 Criticality=false
BasicConstraints:[
CA:true
PathLen:2147483647
]
#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 4F E4 A0 B3 DD 9C BA 29 F7 1D 72 87 C4 E7 C3 8F O......)..r.....
0010: 20 86 C2 99 ...
]
]
Warning:
證書 使用的 MD5withRSA 簽名算法被視為存在安全風(fēng)險(xiǎn)而且被禁用。
2. 查看keystore簽名文件的簽名信息 (Eclipse編譯時(shí)使用)
keytool -list -v -keystore [keystore文件路徑]
例如:keytool -list -v -keystore system_signature.keystore
Jackchen$ keytool -list -v -keystore system_signature.keystore
輸入密鑰庫口令:
密鑰庫類型: jks
密鑰庫提供方: SUN
您的密鑰庫包含 1 個(gè)條目
別名: system_signature
創(chuàng)建日期: 2021-8-14
條目類型: PrivateKeyEntry
證書鏈長度: 1
證書[1]:
所有者: [email protected], CN=Android, OU=Android, O=Android, L=Mountain View, ST=California, C=US
發(fā)布者: [email protected], CN=Android, OU=Android, O=Android, L=Mountain View, ST=California, C=US
序列號(hào): b3998086d056cffa
生效時(shí)間: Wed Apr 16 06:40:50 CST 2008, 失效時(shí)間: Sun Sep 02 06:40:50 CST 2035
證書指紋:
SHA1: 27:19:6E:38:6B:87:5E:76:AD:F7:00:E7:EA:84:E4:C6:EE:E3:3D:FA
SHA256: C8:A2:E9:BC:CF:59:7C:2F:B6:DC:66:BE:E2:93:FC:13:F2:FC:47:EC:77:BC:6B:2B:0D:52:C1:1F:51:19:2A:B8
簽名算法名稱: MD5withRSA(禁用)
主體公共密鑰算法: 2048 位 RSA 密鑰
版本: 3
擴(kuò)展:
#1: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: 4F E4 A0 B3 DD 9C BA 29 F7 1D 72 87 C4 E7 C3 8F O......)..r.....
0010: 20 86 C2 99 ...
]
[[email protected], CN=Android, OU=Android, O=Android, L=Mountain View, ST=California, C=US]
SerialNumber: [ b3998086 d056cffa]
]
#2: ObjectId: 2.5.29.19 Criticality=false
BasicConstraints:[
CA:true
PathLen:2147483647
]
#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 4F E4 A0 B3 DD 9C BA 29 F7 1D 72 87 C4 E7 C3 8F O......)..r.....
0010: 20 86 C2 99 ...
]
]
*******************************************
*******************************************
Warning:
<system_signature> 使用的 MD5withRSA 簽名算法被視為存在安全風(fēng)險(xiǎn)而且被禁用。
JKS 密鑰庫使用專用格式。建議使用 "keytool -importkeystore -srckeystore system_signature.keystore -destkeystore system_signature.keystore -deststoretype pkcs12" 遷移到行業(yè)標(biāo)準(zhǔn)格式 PKCS12。
3. 查看jks簽名文件的簽名信息(AndroidStudio編譯時(shí)使用)
keytool -list -v -keystore [jks文件路徑]
例如:keytool -list -v -keystore system_signature.jks
結(jié)果同上