首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何找出哪个密钥库是用来为应用程序签名的?

如何找出哪个密钥库是用来为应用程序签名的?
EN

Stack Overflow用户
提问于 2012-07-04 22:56:59
回答 4查看 193.3K关注 0票数 298

我有一个签名的应用程序和几个密钥库文件。我想要更新应用程序,所以我需要找出使用了哪一个密钥。

我如何将最初用来为我的应用程序签名的密钥库与我机器上的各种密钥库进行匹配?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-07-04 23:29:10

首先,解压APK并解压缩文件/META-INF/ANDROID_.RSA (该文件也可以是CERT.RSA,但应该只有一个.RSA文件)。

然后发出以下命令:

代码语言:javascript
复制
keytool -printcert -file ANDROID_.RSA

您将获得如下证书指纹:

代码语言:javascript
复制
     MD5:  B3:4F:BE:07:AA:78:24:DC:CA:92:36:FF:AE:8C:17:DB
     SHA1: 16:59:E7:E3:0C:AA:7A:0D:F2:0D:05:20:12:A8:85:0B:32:C5:4F:68
     Signature algorithm name: SHA1withRSA

然后再次使用keytool打印出签名密钥库的所有别名:

代码语言:javascript
复制
keytool -list -keystore my-signing-key.keystore

您将获得别名及其证书指纹的列表:

代码语言:javascript
复制
android_key, Jan 23, 2010, PrivateKeyEntry,
Certificate fingerprint (MD5): B3:4F:BE:07:AA:78:24:DC:CA:92:36:FF:AE:8C:17:DB

瞧!我们现在可以确定apk已经用这个keystore和别名'android_key‘进行了签名。

Keytool是Java的一部分,因此请确保PATH中包含Java安装目录。

票数 460
EN

Stack Overflow用户

发布于 2012-07-05 11:21:31

查看签名证书的方法要简单得多:

代码语言:javascript
复制
jarsigner.exe -verbose -verify -certs myapk.apk

这将仅显示DN,因此如果您有两个具有相同DN的证书,则可能需要通过指纹进行比较。

票数 14
EN

Stack Overflow用户

发布于 2019-09-07 12:02:39

您可以使用Android SDK中的apksigner工具来完成此操作:

apksigner verify --print-certs my_app.apk

您可以在build-tools目录中找到apksigner。例如:~/Library/Android/sdk/build-tools/29.0.1/apksigner

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11331469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档