如何从Android Studio检索已保存的密钥库密码?

use*_*264 28 android android-keystore android-studio

新的Android Studio允许我们保存密钥库密码供以后使用.这些密码存储在我的计算机(OSX)上的哪里,有没有办法检索保存的值?

在此输入图像描述

编辑 我正在寻找别名密码,而不是密钥库密码

kun*_*ang 44

方法1:从gradle构建运行时读取

步骤1:将以下代码添加到app/build.gradle

afterEvaluate {
    if (project.hasProperty("android.injected.signing.store.file")) {
        println "key store path: ${project.property("android.injected.signing.store.file")}"
    }
    if (project.hasProperty("android.injected.signing.store.password")) {
        println "key store password: ${project.property("android.injected.signing.store.password")}"
    }
    if (project.hasProperty("android.injected.signing.key.alias")) {
        println "key alias: ${project.property("android.injected.signing.key.alias")}"
    }
    if (project.hasProperty("android.injected.signing.key.password")) {
        println "key password: ${project.property("android.injected.signing.key.password")}"
    }
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

第 2 步:从菜单“Build”->“Generate Signed apk/bundle”开始构建。

步骤3:打开Android Studio底部的Build窗口,查找密钥存储信息

在此输入图像描述

方法2:从Idea持久存储中读取

我写了一个Idea插件,名为RestoreKeystorePlugin

第 1 步:从下载链接下载 jar 文件

第2步:将插件安装到Android Studio

在此输入图像描述 然后根据需要重新启动 Android Studio

步骤 3:选择“工具”->“恢复密钥库信息”菜单,它将在对话框中显示密钥库信息

在此输入图像描述 在此输入图像描述

  • 到 2022 年,这是在我的 Windows 10 电脑上唯一有效的答案。Android Studio 修复了许多以前允许您读取日志中原始密码的漏洞。但是,您创建的插件运行完美。您使我的应用免于重新列出! (3认同)

Var*_*run 41

您可以在Android Studio生成的idea.log文件中找到它:

搜索"Pandroid.injected.signing.key.password",您可以看到密钥密码.

示例日志:

2015年11月13日10:22:48844 [709463] INFO - a.gradle.invoker.GradleInvoker -建立命令行选项:[--configure点播,-Pandroid.injected.invoked.from.ide =真, -Pandroid.injected.signing.st ore.file = /用户/ VARUN /项目/ MyApp的/ mykey.jks,-Pandroid.injected.signing.store.password = mykeystorepassword,-Pandroid.injected.signing.key.alias = myalias , - Pandroid.injected.signing.key.password = mykeypassword ,-Pandroid.injected.apk.location = /用户/ VARUN /代码/机器人/工作区/ MyApp的,--init脚本,/私有的/ var /文件夹/ VK /z504nlhd6v30p7zvtgjp5sjm0000gn/T/asLocalRepo0.gradle]

注1:在OSX上,idea.log文件可以在〜/ Library/Logs/AndroidStudio2.0找到

注意2:如果在idea.log中没有找到密码,那么还要查看名为idea.log.1,idea.log.2等文件.

资源

  • 非常感谢!这是比强制执行更好的解决方案:D如果有人在OSX上找不到像我这样的日志文件:在Studio中:帮助 - >在Finder中显示登录 - >打开文件并搜索;) (5认同)
  • 这似乎无法在Ubuntu上的AS 3.0上运行,日志中使用星号代替密码字符。 (5认同)
  • 密码被屏蔽,但我找到了正确的密钥库位置 :-) (2认同)
  • 在OSX上,可以在〜/ Library/Logs/AndroidStudio2.0找到最新版Android Studio(目前为2.0)的日志文件.我在idea.log.1中找到了密码,因此您可能需要先检查几个文件,然后才能找到所需内容 (2认同)

Bas*_*del 13

对于在更新版本的Android Studio和Ubuntu上尝试密钥库密码恢复的任何人来说,似乎大多数记录的从日志,gradle等恢复密码的建议都不再有效.科尔内留出色的蛮力脚本是伟大的 - 除非你选择了一个不带字典单词16个字符的密码,并想结果于本月:)使用的IntelliJ的security.xml解决方案不再从Android Studio中获取已保存的密码或者,据我所知.

然而 - 有点挖掘,Android Studio 3.1似乎使用Ubuntu 18.04中的操作系统密钥链,因此检索保存的密钥库密码非常简单:

  1. 打开"密码和密钥"(使用超级密钥并搜索"密码")
  2. 过滤结果'android'
  3. 看看每个条目,它们将类似于org.jetbrains.android ... KeyPasswordRequestor,并依次打开每个条目
  4. 展开密码下拉列表并选择"显示密码",它将类似于:KEY_STORE_PASSWORD__/home/pathto/keystore/keystore-name.jks@mycoolpassword

找到您要查找的密钥库,@之后的位是您缺少的密码.希望能帮到那里的人!

  • 大!它也适用于OSX。在Android上打开钥匙串访问和过滤 (2认同)

Jam*_*ars 11

Gradle将它们存储在二进制文件的项目目录中.您可以像这样(从项目目录)获取它们:

strings .gradle/GRADLE_VERSION/taskArtifacts/taskArtifacts.bin | grep storePassword -A1

(感谢/sf/answers/2353724551/ for taskArtifacts.bin指针)


moh*_*ge7 9

从您签署apk的日期开始查找日志文件,您可以在下面找到您的关键信息.

-Pandroid.injected.signing.store.password=[store_password], 
-Pandroid.injected.signing.key.alias=[alias], 
-Pandroid.injected.signing.key.password=[key_password]
Run Code Online (Sandbox Code Playgroud)

你可以在下面找到你的日志文件

C:\ Users \用户username.AndroidStudio [versionNum]\SYSTEM \日志\

  • 从使用gradle 4.1的android studio 3.0开始,它们被屏蔽(密码存储为******) (9认同)
  • 如果将它们标记为*****,我们如何在android studio 3.0及更高版本中获取它们 (2认同)

Ido*_*lon 9

在macOS上,最新版本的Android Studio(在3.2上进行测试)将密钥库/密钥密码存储在钥匙串中的以下项目下:

  • org.jetbrains.android.exportSignedPackage.KeystoreStep$KeyStorePasswordRequestor
  • org.jetbrains.android.exportSignedPackage.KeystoreStep$KeyPasswordRequestor

前者存储密钥库本身的密码,而后者存储密钥的密码。

您可以使用系统钥匙串访问应用程序访问它们。找到相应的条目,然后双击它。帐户字段应以以下形式包含密钥库的路径或密钥库内的密钥别名的路径: KEY_STORE_PASSWORD__/Users/username/keystorenameKEY_STORE_PASSWORD__/Users/username/keystorename__alias

单击Show password并在要求时输入您的macOS密码。而已!


jua*_*m0n 5

我有同样的问题!

它让我发疯,但我发现了一个小脚本,它节省了我:https://github.com/corneliudascalu/intellij-decrypt

我认为它可以帮助你.好看