Possible Duplicate:
Lost my keystore for uploaded app on android market




我正在将一个新版本的Android应用推到Google Play商店,我希望它为该应用的当前用户触发更新,而不是将其视为新版本。我没有最初用于对现有应用程序进行签名的私钥,因此我正在尝试以下操作来恢复它。

我可以转到第3步,但是我不确定keytool -list -keystore my-signing-key.keystore命令的.keystore文件名是什么,有什么想法吗?


首先,解压缩APK并解压缩文件/META-INF/ANDROID_.RSA
(此文件也可以是CERT.RSA,但是应该只有一个.RSA
文件)。
然后发出以下命令:

keytool -printcert -file ANDROID_.RSA您将获得证书
像这样的指纹:

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
 签名算法名称:SHA1withRSA
然后再次使用keytool打印您的所有别名
签名密钥库:

keytool-列表-keystore my-signing-key.keystore


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

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已使用此密钥库以及别名“ android_key”进行了签名。

最佳答案

除非您拥有保存私钥的原始密钥库文件,否则无法从.apk中提取它。 .apk仅包含公钥和使用私钥生成的签名,但实际上不包含私钥本身。

考虑一下-如果.apk包含实际的私钥,并且提取私钥的说明是如此简单,那么任何人都可以从其应用程序中获取Google,Facebook,Microsoft或Amazon私钥并对其进行任何恶意软件签名。 (Apple不会受到此类攻击,因为它们没有提供任何Android软件:-P)

因此,除非您有权访问用于签名先前的.apk的原始密钥库文件(并且您知道密码短语-感谢@ 323go),否则我担心您很不走运。

关于android - 检索现有Android应用的私钥,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13278431/

10-13 00:53