如何在android studio中检索签名APK的密钥别名和密钥密码(从Eclipse迁移)

时间:2015-01-19 22:53:37

标签: android android-studio apk signing

我目前在Google Play上发布了一款Android应用,我会定期更新。我按照以下流程在新推送之前签署应用程序:

在项目上按鼠标右键,即Android工具' - >导出签名的应用程序包 提供密钥库密码 签署您的应用程序 将apk文件上传到Google Play开发者控制台

最近我将项目从Eclipse导入到Android Studio并继续在Android Studio上工作。现在我打算在应用程序中推送一个修复程序。我已经想到我有这个选项在android studio中签名apk

构建 - >生成签名的apk - > enter image description here

根据我的理解,对于我的Android应用程序,我必须使用我之前用于将更新推送到Google Play的相同密钥库和密钥库密码。此外,它还要求提供密钥别名和密钥密码。在Eclipse中签名apk时,我不记得密钥别名和密钥密码(图像中的第4个输入)。有什么建议我现在能做什么?如果我已经知道我的密钥库和密钥库密码,有没有办法检索密钥别名和别名密钥密码?

更新:现在我可以通过keytool -list -v -keystore name.keystore命令检索我的密钥别名

23 个答案:

答案 0 :(得分:146)

在Mac上,我在更新Android Studio之前在早期日志报告中找到了密钥库文件路径,密码,密钥别名和密钥密码。

我启动了Console实用程序并向下滚动到〜/ Library / Logs - > AndroidStudioBeta - > idea.log.1(或任何旧的日志编号)

然后我搜索了“android.injected.signing.store”并从较早的日期发现了这个:

-Pandroid.injected.signing.store.file=/Users/myuserid/AndroidStudioProjects/keystore/keystore.jks, 
-Pandroid.injected.signing.store.password=mystorepassword, 
-Pandroid.injected.signing.key.alias=myandroidkey, 
-Pandroid.injected.signing.key.password=mykeypassword,

答案 1 :(得分:95)

我终于可以解决这个问题了。

获取密钥别名:我将keytool.exe和我的密钥库文件复制到C:\ Program Files \ Java \ jdk1.7.0_71 \ bin文件夹中。然后从命令提示符我写道:keytool -list -v -keystore <name>.keystore 它还会询问密钥库密码。然后它会显示关键别名和证书指纹以及其他信息。

然后我再次尝试为项目生成签名Apk,我提供了密钥库,密钥库密码,密钥别名并提供了相同的密码。然后它要求主密码,我尝试了同样的,它失败了。使用重置选项,我在此重置主密码。

答案 2 :(得分:43)

  

如何检索密钥库密码

您无法检索密码。如果你忘了它,你就注定了。

  

如何检索关键别名

$ keytool -list -v -keystore <store>

但是你首先需要密钥库密码。

修改

  

我不记得的是'密码'

无法恢复密码。如果您忘记了密码密码,那么您也注定要失败,除了更加努力地回忆它之外别无他法。没有密码重置的东西,也没有类似的东西。

请注意,如果您忘记了密码,那么您将不再对您的应用发布更新(docs):

  

警告:确保您的密钥库和私钥安全可靠   放置,并确保您有安全的备份。如果您发布   Google Play的应用,然后丢失您签名的密钥   应用程序,您将无法发布任何更新到您的应用程序,因为   您必须始终使用相同的密钥对应用的所有版本进行签名。

答案 3 :(得分:16)

在Windows中 - 只需在记事本中打开密钥库文件,在第一行 - 您可以看到用英文字母书写的别名。

答案 4 :(得分:15)

根据gkemp的回答,在Windows上,我在更新Android Studio之前在早期的日志报告中找到了密钥库文件路径,密码,密钥别名和密钥密码。

来自windows文件资源管理器c:/ Users /你的电脑名称/ .AndroidStudio1.4(你的android工作室版本)\ system \ log \ idea.log.1(或任何旧的日志编号)

然后我搜索了“android.injected.signing.store”并从较早的日期发现了这个:

<?php
require('smtp.function');

SMTP('to@domain.com',' This is a test of the SMTP class by Alex','<strong>This test</strong> is <a href="http://www.google.co.uk">HTML CODE</a>');




?>

答案 5 :(得分:12)

在ubuntu中,我们可以从给定路径中找到与密钥库相关的所有密码。

/home/user/.AndroidStudio2.2(current version)/system/log/idea.log.x(older versions)

编辑文件并搜索android.injected.signing.store,然后就可以找到密码了。

-Pandroid.injected.signing.store.file= path to your keystore 
-Pandroid.injected.signing.store.password=yourstorepassword
-Pandroid.injected.signing.key.alias=yourkeyalias
-Pandroid.injected.signing.key.password=yourkeypassword

答案 6 :(得分:7)

恢复您的密钥库密码

100%工作

Projects->taskHistory.bin

enter image description here

Find->KeyAlias

enter image description here

注意:点击并查看我的图片作为参考

答案 7 :(得分:7)

只需恢复KEY ALIAS。在终端上键入以下命令。

$ keytool -list -v -keystore <storekey>

它将提供信息开始,

  

您的密钥库包含2个条目......

您可以在那里查找别名。

答案 8 :(得分:6)

我在下面的路径中找到了我的密钥密码

Project\.gradle\2.14.1\taskArtifacts\taskArtifacts.bin 打开文件并使用您记住的密码部分进行搜索。你肯定会找到它。

此外,您可以参考此答案stackoverflow.com/a/43007357/7089151

答案 9 :(得分:6)

不幸的是,以上提供的解决方案并不适合初学者。

keytool -list -v -keystore keystore_name.jks

答案 10 :(得分:4)

如果查看日志没有帮助,您还可以尝试强制使用密码 - 请检查此帖子上的方法3 - Android KeyStore Password Recover

SO post也有更多答案。

答案 11 :(得分:4)

用记事本++打开密钥文件(.jks文件)。你会在第一行获得别名......

答案 12 :(得分:3)

是的,您可以在Android Studio的任务工件中找到丢失的密钥。

Project\.gradle\2.14.1\taskArtifacts\taskArtifacts.bin

打开文件并使用您记住的部分密码进行搜索。

如果没有,请使用此字符串“signingConfig.storePassword”

进行搜索

注意:我遇到了同样的事情,我可以在上面的路径中找到它。如果您没有找到,可能会清除所有缓存和临时文件。

答案 13 :(得分:2)

您可以按照以下方式查找密钥库详细信息,而无需使用密码。

在命令提示符

中执行命令(keytool -list -keystore <path>

你可以在我的机器的java文件夹中找到Keytool,我可以找到以下路径

C:\Program Files (x86)\Java\jdk1.7.0_71\bin> keytool -list -keystore C:\<YourKeystore>.Keystore

然后它会要求您输入密码,在这里您无需输入密码而不是按下向上箭头按钮并输入密码。然后将显示相同的详细信息,并显示警告消息,如下所示。

  

*************警告警告警告*****************

     
      
  • 存储在密钥库中的信息的完整性*

  •   
  • 尚未经过验证!为了验证其完整性,*

  •   
  • 您必须提供密钥库密码。 *

  •   
     

*************警告警告警告*****************

     

密钥库类型:JKS密钥库提供商:SUN

     

您的密钥库包含1个条目

     

samplekey,2017年4月26日,PrivateKeyEntry,证书指纹   (SHA1):XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX

答案 14 :(得分:1)

使用记事本打开yourApp.jks文件即可找到Keystore&amp;别名在那里!!

答案 15 :(得分:1)

如果您刚好在MacOS上并选中了Android Studio中的“保存密码”框,则可以从“钥匙串访问”中恢复密码。

  1. 从应用程序/实用程序启动钥匙串访问。
  2. 在左侧面板的“类别”中选择密码。
  3. 在右上角的搜索框中,输入您的Android应用名称或应用名称的一部分。
  4. 如果您已保存密码,您将看到结果行。
  5. 双击它,选中“显示密码”复选框,在询问时输入系统密码,然后将显示您的密钥库密码。

答案 16 :(得分:1)

单击KeyAlias,您将了解别名

enter image description here

答案 17 :(得分:1)

不要在所有这些解决方案上浪费时间,它们不再起作用,谷歌设法修复了所有这些泄漏并加密了所有提到的文件的密码。只需联系 google support,创建一个新的 Keystore 文件并将其发送给他们,他们将为您的应用更新它。

答案 18 :(得分:1)

有一种方法可以重置密码。

转到此链接,描述您的问题(忘记 KeyStore 密码)并生成令牌。 https://support.google.com/googleplay/android-developer/contact/otherbugs

如果幸运的话,您将在 1 小时内获得重播。 (一般最多需要 2 天)。

您需要生成一个新密钥和upload_certificate.pem,然后将其发送给谷歌进行重置。您将在邮件中收到说明。

要生成upload_certificate.pem,请转到 android studio 终端并输入:

keytool -export -rfc -alias upload -file upload_certificate.pem -keystore keystore.jks

答案 19 :(得分:0)

您可能想尝试使用此密码破解程序。

http://maxcamillo.github.io/android-keystore-password-recover/index.html

我正在使用字典攻击方法。它对我有用,因为我能想到的密码只有几个组合。

答案 20 :(得分:0)

Android Studio 3.0以下工作方法:
找到您的旧压缩项目。
如果您已经构建了apk,则会在文件中找到密码:

Project\.gradle\2.14.1\taskArtifacts\taskArtifacts.bin

Pandroid.injected.signing.store.password =密码

如果您没有压缩项目,请查看您的git存储库,无论是否已推送.gradle文件夹。
否则,您将必须通过“ Pandroid.injected.signing.store.password”内容恢复文件并搜索文件。

答案 21 :(得分:0)

无论如何,您都对密码感到困惑。您可以使用点击和试用。 它将要求您输入密码。如果正确,则会显示列表。

  • 列表项

$ keytool -list -v -keystore文件名

答案 22 :(得分:0)

我尝试了很多解决方案,只有与我合作,我才能与您分享

enter image description here

enter image description here

enter image description here

通过 Ctrl + F

搜索