查看APK的签名的方法

1、查看 keystore  

$ keytool -list -keystore debug.keystore 

结果:

Keystore type: JKS

Keystore provider: SUN

Your keystore contains 1 entry

androiddebugkey, Mar 21, 2013, PrivateKeyEntry, 

Certificate fingerprint (MD5): E0:F4:90:EE:CD:77:17:0E:B8:C4:AC:64:B2:F6:FC:83

2、查看三方应用或是系统应用签名
用winrar打开待查看的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、给空白包签名

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


  • 7
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
APK签名是为了保证应用程序的完整性和安全性,防止应用程序被篡改或者恶意注入代码。一般来说,APK签名分为两种:Debug签名和Release签名。 Debug签名是用于开发和测试应用程序的签名,其签名证书由Android SDK自动生成,不需要手动签名。而Release签名则需要开发者自己生成签名证书,并使用该证书对APK进行签名。 下面是Release签名的步骤: 1. 生成签名证书:使用keytool工具生成签名证书。在命令行中输入以下命令: keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000 其中,-keystore参数指定生成的签名证书的文件名和存放位置;-alias参数指定证书别名;-keyalg参数指定加密算法,这里使用RSA算法;-keysize参数指定密钥长度;-validity参数指定证书的有效期。 2. 为应用程序配置签名证书:在应用程序的build.gradle文件中配置签名证书信息。在android节点下添加如下代码: ```gradle signingConfigs { release { storeFile file("my-release-key.keystore") storePassword "your_store_password" keyAlias "your_key_alias" keyPassword "your_key_password" } } ``` 其中,storeFile参数指定签名证书的文件名和存放位置;storePassword参数指定密钥库的密码;keyAlias参数指定别名;keyPassword参数指定别名密码。 3. 使用签名证书对APK进行签名:在应用程序的build.gradle文件中添加如下代码: ```gradle buildTypes { release { signingConfig signingConfigs.release } } ``` 这样,当你使用Android Studio生成Release版本的APK时,就会使用你生成的签名证书对APK进行签名
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值