首页 文章

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

提问于
浏览
63

我有一个目前在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命令检索我的密钥别名

16 回答

  • 4

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

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

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

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

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

  • 85

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

    这个SO post也有更多的答案 .

  • 14

    只需用记事本打开yourApp.jks文件就可以找到Keystore和别名!

  • 39

    要恢复KEY ALIAS . 在终端上键入以下命令 .

    $ keytool -list -v -keystore <storekey>
    

    它将提供信息开始,

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

    您可以在那里查找别名 .

  • 15

    只需用记事本打开密钥文件(.jks文件) . 您将在第一行获得别名...

  • 2

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

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

    另外,你可以参考这个答案stackoverflow.com/a/43007357/7089151

  • 3

    在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,
    
  • 0

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

    从Windows文件浏览器c:/ Users /您的电脑名称/ .AndroidStudio1.4(您的Android工作室版本)\ system \ log \ idea.log.1(或任何旧的日志编号)

    然后我搜索了“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
    
  • 0

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

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

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

  • 144

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

  • 1

    如何检索密钥库密码

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

    如何检索密钥别名

    $ keytool -list -v -keystore <store>
    

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

    EDIT

    我不记得的是'密码'

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

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

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

  • 4

    在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
    
  • 11

    Recover your keystore password

    100% working

    Projects->taskHistory.bin

    enter image description here

    Find->KeyAlias

    enter image description here

    Note: 单击并查看我的图像供您参考

  • 7

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

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

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

  • 4

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

    在命令提示符中执行命令( 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入门样本密钥,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

  • 2

    Android Studio 3.0 below working method:
    找到旧的压缩项目 .
    如果你已经构建了apk,你会在文件中找到密码:

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

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

    如果您没有压缩项目,请检查您的git存储库是否已推送.gradle文件夹 .
    否则,您必须按内容"Pandroid.injected.signing.store.password"恢复文件和搜索文件 .

相关问题