androidapk签名查看
‘壹’ 如何判断 Android 应用的 Apk 签名是否一致
Android应用的发布形式apk中包含的签名加密方法除了RSA还有DSA,所以不能只从apk中提取常见的META-INF/CERT.RSA,第一步应该是检查apk中具体的签名文件是什么。
FILE="yourapp.apk"
cert_XSA=`jar tf $FILE | grep SA`
此时得到的cert_XSA可能是META-INF/*.RSA或者META-INF/*.DSA。
接下来从apk中提取具体的签名文件。
jar xf $FILE $cert_XSA
此时会在当前目录得到cert_XSA文件。
然后对于得到的签名文件,提取其中签名的MD5值
keytool -printcert -file $cert_XSA | grep MD5 > "$FILE.certMD5"
这时候yourapp.certMD5这个文件中就保存了yourapp.apkk中的签名MD5值。
最后比较两个app的签名可以用diff
FILE1="yourapp1.apk"
FILE2="yourapp2.apk"
# ...
# ... 经过上述步骤得到$FILE1.certMD5和$FILE2.certMD5
# ...
certMD5_diff=`diff $FILE1.certMD5 $FILE2.certMD5`
if [ "$certMD5_diff" = "" ]; then
echo "$FILE1.certMD5 == $FILE2.certMD5"
fi
若输出yourapp1.apk.certMD5 == yourapp2.apk.certMD5那么这两个应用的签名就一致。
‘贰’ Android查看应用签名方法
打开 Android Studio,然后选迹盯帆择右边的 Gradle 标姿雹签,选择一个项目,然后选择 signingReport 这个 Task,双击运行
然后选择右下角的 Gradle Console,就可以看到签名信息了
使用解压工具解压 APK 文件,在 META-INF 文件夹拿到 CERT.RSA 文件。假设 CERT.RSA 文件的路径是 C:\Users\Administrator\Desktop\CERT.RSA。在 CMD 中输入
就可以得到签名信息了
jks 作为签名文件,也可以通过命令行来查看的其中的签名信息,假设签名文件的名称是 test_release.jks,在终端中输入
即可得到签则老名信息
‘叁’ 如何利用Eclipse工具打包签名AndroidApk文件
1、打开eclipse,右击需要打包的程序,选择“Android Tools”选项,对应有一个“Export signed Application Package…”选项,点击该选项,如下所示:
‘肆’ 怎样查看android的apk文件的签名
以下介绍查看自己的应用签名及三方APK或系统APK签名信息,包含其中的MD5、SHA1、SHA256值和签名算法等信息。
1、查看自己的应用签名
可以通过两种方式查看
(1) debug的apk通过Eclipse查看,如下图:
可以查看签名的MD5、SHA1、SHA256值及签名算法
‘伍’ PHP获取安卓apk包里的apk签名
所需工具:aapt,Android SDK中的工具,只有一个exe,可以直接运行。
keytool,JDK中的工具,需要安装JDK环境。
需要提供目标应用的apk
1、获取包名
例如:aapt.exe mp badging C:\Users\Administrator\Desktop\demo-apk-1.0.1.8791.apk > C:\Users\Administrator\Desktop\1.txt
获取到的包名是com.pakgname.swbg
2、获取签名
SHA1: 56:BD:02:6B:9D:53:D7:F5:32:B2:BC:BD:BB:34:5B:F1:CD:EF:7F:C0
这里借助github开源的类apkparser
在项目composer.json中执行下面命令或修改composer.json引入即可
方法二适用于没有java环境的情况下,一般linux都会有openssl环境。
原理:通过分析方法一中,发现apk包解压之后,里面会有.rsa签名证书,此证书是一个符合pki体系的x509证书,通过openssl命令即可查看信息。
‘陆’ 如何查看 android 数字签名
用java命令查看,如下:
C:\jdk1.6.0_10\bin>jarsigner.exe -verify f:\ICBCAndroidBank.apk
jar 已验证
什么是数字签名?
数字签名就是为你的程序打上一种标记,来作为你自己的标识,当别人看到签名的时候会知道它是与你相关的。
为什么要数字签名?
Android系统要求每一个Android应用程序必须要经过数字签名才能够安装到系统中,也就是说如果一个Android应用程序没有经过数字签名,是没有办法安装到系统中的!
Android通过数字签名来标识应用程序的作者和在应用程序之间建立信任关系,不是用来决定最终用户可以安装哪些应用程序。
这个数字签名由应用程序的作者完成,并不需要权威的数字证书签名机构认证,它只是用来让应用程序包自我认证的。
‘柒’ 怎么查看apk的签名 keystore
1、查看 keystore
$ keytool -list -v -keystore debug.keystore
$ keytool -list -v -keystore debug.keystore
Enter keystore password:
***************** WARNING WARNING WARNING *****************
* The integrity of the information stored in your keystore *
* has NOT been verified! In order to verify its integrity, *
* you must provide your keystore password. *
***************** WARNING WARNING WARNING *****************
Keystore type: JKS
Keystore provider: SUN
Your keystore contains 1 entry
Alias name: androiddebugkey
Creation date: Apr 8, 2015
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Android Debug, O=Android, C=US
Issuer: CN=Android Debug, O=Android, C=US
Serial number: 509aeb88
Valid from: Wed Apr 08 20:48:48 CST 2015 until: Fri Mar 31 20:48:48 CST 2045
Certificate fingerprints:
MD5: 38:43:E1:B6:AB:F2:7F:80:93:CD:E5:EF:75:B9:A5:6C
SHA1: 9D:53:DB:6C:DA:D4:08:B3:D4:A6:E5:26:17:BD:80:FA:5A:E4:4F:AB
SHA256: D5:FF:04:4A:A2:F8:A4:EA:2A:44:53:28:0C:20:16:45:E8:71:AC:B1:74:76:F6:B4:01:90:86:83:73:E0:B0:8A
Signature algorithm name: SHA256withRSA
Version: 3
Extensions:
#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: B2 FF B2 0D 9C 54 BA BA A2 EF E3 BA E2 47 90 7F .....T.......G..
0010: 17 8A 35 A8 ..5.
]
]
*******************************************
2、查看三方应用或是系统应用签名
打开待查看的apk,将其中META-INF文件夹解压出来,得到其中的CERT.RSA文件
$ keytool -printcert -file META-INF/CERT.RSA
打开待查看的apk,将其中META-INF文件夹解压出来,得到其中的CERT.RSA文件
$ keytool -printcert -file META-INF/CERT.RSA
Owner: CN=Android Debug, O=Android, C=US
Issuer: CN=Android Debug, O=Android, C=US
Serial number: 514ab2e1
Valid from: Thu Mar 21 15:12:33 CST 2013 until: Sat Mar 14 15:12:33 CST 2043
Certificate fingerprints:
MD5: E0:F4:90:EE:CD:77:17:0E:B8:C4:AC:64:B2:F6:FC:83
SHA1: 7F:E5:11:D8:37:4F:DA:D7:75:EA:A5:8C:47:06:85:95:6D:1D:3F:2B
Signature algorithm name: SHA1withRSA
Version: 3
3、给空白包签名 (注意 alias 值)
jarsigner -verbose -keystore [keystorePath] -signedjar [apkOut] [apkIn] [alias]
jarsigner命令格式:-verbose输出详细信息 -keystore密钥库位置 -signedjar要生成的文件 要签名的文件 密钥库文件
keystorePath参数代表keyStore的绝对路径,如D:\keystore
apkOut参数代表签名后的apk路径,如D:\signed.apk
apkin参数代表在腾讯应用中心下载的未签名apk,默认名称为tap_unsign.apk
alias参数代表签名用的alias名称(创建keyStore时所填写),如timdong
$ jarsigner -verbose -keystore debug.keystore -signedjar test2.apk tap_unsign1.apk timdong
Enter Passphrase for keystore:
adding: META-INF/MANIFEST.MF
adding: META-INF/ANDROIDD.SF
adding: META-INF/ANDROIDD.RSA
signing: res/drawable/ic_launcher.png
signing: res/layout/main.xml
signing: AndroidManifest.xml
signing: resources.arsc
signing: classes.dex
‘捌’ 我的android项目已经生成了签名但不知道这个签名是什么也不知在哪查看
签名的apk自己无法查看,是安装的时候android系统验证用的。
1.签名的意义
为了保证每个应用程序开发商合法ID,防止部分开放商可能通过使用相同的Package Name来混淆替换已经安装的程序,我们需要对我们发布的APK文件进行唯一签名,保证我们每次发布的版本的一致性(如自动更新不会因为版本不一致而无法安装)。
2.签名的步骤
a.创建key
b.使用步骤a中产生的key对apk签名
3.具体操作, 命令行下对apk签名(原理)
创建key,需要用到keytool.exe (位于jdk1.6.0_24\jre\bin目录下),使用产生的key对apk签名用到的是jarsigner.exe (位于jdk1.6.0_24\bin目录下),把上两个软件所在的目录添加到环境变量path后,打开cmd输入
D:\>keytool -genkey -alias demo.keystore -keyalg RSA -validity 40000 -keystore demo.keystore/*说明:-genkey 产生密钥 -alias demo.keystore 别名 demo.keystore -keyalg RSA 使用RSA算法对签名加密 -validity 40000 有效期限4000天 -keystore demo.keystore */D:\>jarsigner -verbose -keystore demo.keystore -signedjar demo_signed.apk demo.apk demo.keystore/*说明:-verbose 输出签名的详细信息 -keystore demo.keystore 密钥库位置 -signedjar demor_signed.apk demo.apk demo.keystore 正式签名,三个参数中依次为签名后产生的文件demo_signed,要签名的文件demo.apk和密钥库demo.keystore.*/
注意事项:android工程的bin目录下的demo.apk默认是已经使用debug用户签名的,所以不能使用上述步骤对此文件再次签名。正确步骤应该是:在工程点击右键->Anroid Tools-Export Unsigned Application Package导出的apk采用上述步骤签名。
‘玖’ android怎样获取应用签名信息
android 应用签名获取方法如下:
1、选择程序,右键--->android tools --->签名发布,按步骤生成一个签名keystore和毕冲一个经过签名的apk,安装该APK到手机;
2、选择自己的程序,右键运行到手机
3、下载签名应用,在手机中运行,根据提示输入程序的包名羡培获得一个apk签名字符串,最后将这个字符串填到第一步的应用签名栏处。保存即可正常调试应用了。
android 应用签名查看方法如下:
(1) debug的apk通过Eclipse查看,如下图:
‘拾’ 瀹夊崜镓嬫満杞浠舵洿鏂扮殑镞跺欙纴绛惧悕涓崭竴镊存庝箞锷烇纻
瀹夊崜镓嬫満杞浠舵洿鏂扮殑镞跺欙纴绛惧悕涓崭竴镊存庝箞锷烇纻
闂棰树竴锛氱惧悕澶辫触,鍙鑳芥枃浠惰矾寰勪腑鍖呭惈绌烘牸,涓鏂,璇锋妸链杞浠跺拰瑕佺惧悕镄勮蒋浠剁Щ锷ㄥ埌C鐩樼殑镙圭洰褰曚笅杩涜岀惧悕寰埚氢汉浼氭妸瑕佺惧悕镄刟pk鏂囦欢鏀惧埌C鐩樼殑镙圭洰褰曚笅锛屼絾鏄杩樻槸涓嶈屻傝佹敞镒忔彁绀鸿寸殑闇瑕佹妸绛惧悕杞浠朵篃鏀惧埌C鐩樼殑镙圭洰褰曚笅,钥屼笖APK鏂囦欢钖崭腑涓嶈兘鍖呭惈绌烘牸鍜屾眽瀛椼傜劧钖庤繍琛岃蒋浠讹纴镣瑰嚮钬灭惧悕钬濊彍鍗曞嵆鍙銆傞梾棰树簩锛歛pk绛惧悕钖庣殑杞浠0瀛楄妭妫镆apk鏂囦欢閲岄溃鏄涓嶆槸链変腑鏂囧懡钖岖殑鏂囦欢锛屼笉鑳藉嚭鐜拌嫳鏂囧悕锛屽惁鍒欑惧悕鎴愬姛涔熸槸0瀛楄妭銆
Android镐庝箞绛惧悕鍜屽姞瀵嗭纻
鍓嶈█锛
褰撴垜浠缂栧啓瀹屾垜浠镄刟pp涔嫔悗锛屾垜浠杩橀渶瑕佸仛涓や欢浜嬶细绛惧悕鍜屽姞瀵
绛惧悕锛
1>涓轰粈涔堣佺惧悕锛
涓昏佹槸涓轰简纭淇濆簲鐢ㄧ殑瀹夊叏锛屼负浠涔堣繖涔堣村憿锛熼偅涔堬纴鎴戜滑棣栧厛锅囱綼ndroid娌℃湁绛惧悕杩欎釜姒傚康锛
鍦ㄨ繖涓鍓嶆彁涓嬶纴涓嬮溃𨱒ヤ妇涓瀹炰緥璇存槑绛惧悕镄勯吨瑕佹э纴姣斿傦纴鎴戝啓浜嗕竴涓猰yApp锛岀劧钖庤呭湪浜嗘垜镄勬坠链轰笂锛
涓庢ゅ悓镞讹纴鎴戝张瑁呬简涓涓獃ourApp锛屽湪瑁厃ourApp镄勬椂鍊欙纴绐佺劧鍙戠幇myApp琚瑕嗙洊浜嗭纴涓轰粈涔堬纻锲犱负yourApp
镄勫寘钖嶅拰myApp镄勫寘钖岖浉钖岋纴闾d箞锛岃繖镙峰逛簬寮鍙戜汉锻桦啓镄刟pp镄勫畨鍏ㄦф槸娌℃湁淇濋㱩镄勶纴涔熷氨鏄璇达纴闅忎究涓涓
鍖呭悕鐩稿悓镄刟pp灏卞彲浠ュ皢鍙︿竴涓猘pp瑕嗙洊鎺変简锛岃屾垜浠鐭ラ亾銮峰彇涓涓搴旂敤镄勫寘钖嶆槸寰埚规槗镄勪簨锛屾墍浠ユゆ椂绛惧悕镄
姒傚康涔熷氨闅忎箣钥屾潵浜嗭纴涓昏佹槸涓轰简淇濊瘉app镄勫畨鍏ㄦэ纴锲犱负绛惧悕鍙链夊紑鍙戜汉锻樻墠鐭ラ亾锛屽氨绠楀叾浠栦汉鐭ラ亾杩欎釜搴旂敤
镄勫寘钖嶏纴浣嗘槸涓岖煡阆撹繖涓搴旂敤镄勭惧悕锛屼緷镞ф槸娌℃硶瑕嗙洊镄勶纴镓浠ヨ繖灏辨槸android涓镄勭惧悕镄勪綔鐢锛屼笌姝ゅ悓镞讹纴
鍦ㄨ繖閲屼篃闇瑕佹彁阅掍竴涓嬫垜浠镄勫紑鍙戜汉锻桡纴涓镞app涓婂竞锛岄偅涔堣繖涓猘pp镄勭惧悕涓瀹氲佷缭瀛桦ソ锛屼笉铹跺啀娆″崌绾ф椂锛
鏄娌″姙娉曞仛鍒拌嗙洊镄勶纴链濂芥槸灏嗙惧悕鍐嶅嶅埗涓浠界粰涓婂徃锛
2>濡备綍绛惧悕锛
鍦╝ndroidstudio涓锛岄夋嫨Build----->GenerateSignedAPK...
濉鍐椤畬鐩稿簲镄勯夐”(娉锛氲嫢娌℃湁keystore,鍙镊琛屾柊寤轰竴涓)----->Next----->
鍦ㄨ繖涓瀵硅瘽妗嗕腑锛孊uildType阃夋嫨Finish鍗冲彲瀹屾垚绛惧悕锛
娉锛氾纸绛惧悕apk鐢熸垚鐩褰曪级
鎴戜滑绛惧悕涔嫔悗镄刟pk鏂囦欢锛屽彲浠ュ湪涓婅竟杩椤箙锲句腑鍙浠ョ湅鍒帮纴涓嶈佹垒阌欑惧悕镄勫簲鐢ㄤ简锛
鍦ㄦ湰绀轰緥涓锛屽叾鐩褰曞氨鏄锛欳:UsersDAIDesktop
锷犲瘑锛
1>涓轰粈涔堣佽繘琛屽姞瀵嗭纻
绠钥岃█涔嬶纴灏辨槸涓轰简璁╂垜浠镄刟pk涓嶈鍏朵粬浜烘墍镰磋В锛
2>濡备綍锷犲瘑锛
鍙傝冧简涓涓嬬绣涓婄殑锅氭硶锛屽氨鏄锛氶氲繃钬灭埍锷犲瘑钬濇潵杈惧埌瀵规垜浠镓鍐橝PK镄勪竴绉嶅姞瀵
娉锛氩湪鐖卞姞瀵嗕笂锷犲瘑浜嗘垜浠镄𪞝PK涔嫔悗锛屽叾瀹樼绣涔熸湁鏄庣‘娉ㄩ喷锛屽氨鏄杩橀渶瑕佸啀杩涜岀惧悕涓娆★纴钖﹀垯锛孉PK镞犳硶杩愯岋纴
鍏剁惧悕宸ュ叿锛屽湪钬灭埍锷犲瘑钬濆畼缃戜笂宸茬粰鍑猴绂
杩欐牱褰撴垜浠鍦ㄥ规垜浠镄勫凡缁忓姞瀵嗙殑APK镰磋В镞讹纴鍙浠ュ彂鐜帮纴鍏跺凡镞犳硶鐩存帴銮峰彇寰楀埌婧愮爜浜嗭紒锛侊紒
阒呰诲叏鏂
濡备綍缁檃pk鏂囦欢绛惧悕锛
缁欎慨鏀瑰悗镄刟pk閲嶆柊绛惧悕镄勬柟娉曚负锛
1銆侀栧厛锛屽垹闄apk鍖呬腑镄勭惧悕鏂囦欢銆傚湪宸︿晶镄勫帇缂╂枃浠朵腑锛屾垒鍒癕ETA-INF阃夐”锛屽苟鍒犻櫎銆
2銆佸啀娆℃洿鏀笕pk镙煎纺涓哄帇缂╁寘褰㈠纺锛屽皢鍏舵敼锲.apk镙煎纺銆傛垒鍒拌瘉涔debug.keystore锛屽皢鍏跺嶅埗鍒颁笌闇瑕侀吨鏂扮惧悕镄刟pk鏂囦欢鐩稿悓镄勭洰褰曚笅銆
3銆佹寜钬淲IN+R钬濓纴镓揿紑銆愯繍琛屻戯绂杈揿叆钬渃md钬濓纴杩涘叆D:Sign鐩褰曪绂
4銆佽繍琛屼笅闱㈢殑锻戒护锛-androiddebugkey琛ㄧずKey鍒钖嶃
5銆佹渶钖庯纴淇鏀瑰悗镄刟pk閲嶆柊绛惧悕灏卞畬鎴愪简銆
濡备綍镆ョ湅android搴旂敤绛惧悕鏂囦欢镄勪俊鎭锛
涓銆佹煡鐪嬫湰鍦発eystore鏂囦欢锛埚墠鎻愭槸链塳eystore镄勫瘑镰侊级锻戒护锛歬eytool-list-v-keystore鐩镙囨枃浠惰矾寰勪簩銆佹煡鐪嬩笁鏂瑰簲鐢ㄦ垨鏄绯荤粺搴旂敤绛惧悕鍙抽敭apk瑙e帇锛岀洰镙囨枃浠舵槸META-INF鏂囦欢澶逛腑镄凛ERT.RSA鏂囦欢锛岄氲繃锻戒护keytool.exe锻戒护镆ョ湅璇佷功淇℃伅鍙浠ユ煡鐪嬬惧悕镄凪D5銆丼HA1銆丼HA256鍊煎强绛惧悕绠楁硶锻戒护锛歬eytool-printcert-file鐩镙囨枃浠惰矾寰