【问题标题】:Intellij IDEA - view saved passwordIntellij IDEA - 查看保存的密码
【发布时间】:2014-02-07 08:09:05
【问题描述】:

我忘记了我的 Android 密钥库的密码,但它保存在 Intellij IDEA 密码管理器中。我知道主密码,所以 IDEA 能够自动完成密钥库密码,但我无法从文本字段中查看或复制/粘贴密码。

有没有插件可以做到这一点,也许?

我还尝试查找一些日志或 shell,因为我假设 IDEA 在幕后使用 SDK 中的 keytool 实用程序,所以也许我可以在命令行中找到密码。

我的想法已经用完了。请帮忙。

编辑:如果有人知道加密密码的保存位置,我可以备份该文件并在以后的 IDEA 安装中使用相同的主密码。这行得通吗?

【问题讨论】:

标签: android intellij-idea passwords keystore


【解决方案1】:

有同样的问题,除了我根本没有设置主密码。

经研究发现,该密码位于 security.xml 文件中,位于 .IntelliJIdea12/config/options 文件中。但它受 AES 保护(至少看起来如此)。

-- 编辑--

另请参阅下面的评论,其中我指向处理密码存储和加密的 IDE 源

【讨论】:

  • 谢谢。 Intellij IDEA 代码是开源的,因此应该能够弄清楚如何解密密码。我会试着调查一下。
  • 我找到了密码存储和编码\解码的实现,但无法弄清楚如何逆向处理。所有相关代码都位于 com.intellij.ide.passwordSafe 命名空间中。例如 - 用于读取\写入密码数据库的 api 在 com.intellij.ide.passwordSafe.impl.providers.masterKey.PasswordDatabase (goo.gl/cbmFAU) 中。加密\解密代码在 com.intellij.ide.passwordSafe.impl.providers.EncryptionUtil (goo.gl/0gIcBU)
  • EncryptionUtil 类似乎只从标准 JAva 库中导入类,因此应该可以在不编译整个 IDEA 代码库的情况下使用它。解密方法应该是public static byte[] decryptKey(byte[] password, byte[] encryptedKey)(grepcode.com/file/repository.grepcode.com/java/ext/…)
  • 我回家试试看
  • 如果您成功 - 我将非常感谢您的解决方案。
【解决方案2】:

我已经成功地理解了源代码,从而编写了一个小型实用程序来使用主密码解密 security.xml 文件中的密码。 https://github.com/corneliudascalu/intellij-decrypt

【讨论】:

  • 非常感谢您,救命!
  • security.xml 位于 C:\Users\{user}\{intellij.folder}\config\options\security.xml
  • 在mac上,文件位于:~/Library/Preferences/IntelliJIdea2016.2/options/security.xml
  • 超级有帮助。恢复了以 i3b5 开头的旧密码
【解决方案3】:

对于尝试在 Android Studio 和 Ubuntu 的较新版本上恢复密钥库密码的任何人,似乎大多数记录在案的从日志、gradle 等恢复密码的建议不再有效。 Corneliu 出色的蛮力脚本非常棒 - 除非您选择了一个 16 字符的密码,其中没有字典单词,并且希望本月某个时候得到结果 :) 不再可以使用 Intellij security.xml 解决方案从 Android Studio 检索保存的密码要么。

但是 - 经过一番挖掘,Android Studio 3.1 似乎使用了 Ubuntu 18.04 中的 OS 钥匙串,因此检索已保存的密钥库密码非常简单:

  1. 打开“密码和密钥”(使用超级密钥并搜索“密码”)
  2. 按“android”过滤结果
  3. 查看每个条目,它们将是 类似 org.jetbrains.android...KeyPassowrdRequestor 和 依次打开一个
  4. 展开密码下拉菜单并选择 '显示密码',它看起来像: KEY_STORE_PASSWORD__/home/pathto/keystore/keystore-name.jks@mycoolpassword

找到您要查找的密钥库,@ 后面的位是您丢失的密码。希望能帮助到那里的人!

【讨论】:

  • 以防万一有人意外遇到同样的问题,对于 Mac 用户,打开 Keychains 并搜索 jetbrains,方法与您的方法相同。和平相处。
  • 你是救命稻草!
  • 它也适用于Datagrip,但对于Datagrip,每个密钥/密码的名称中都有IntelliJ Platform DB 短语。谢谢!
【解决方案4】:

请注意,对于 MacOS 上最新版本的 IntelliJ,密码(很可能)默认存储在钥匙串中。

这可以通过首选项/外观和行为/系统设置/密码来验证。

可以通过在钥匙串中搜索“IntelliJ Platform DB”找到相应的条目,其中它们由 uuid 列出。每个 uuid 的数据源可以在 .idea/dataSources.xml 中找到

【讨论】:

  • 对于 MacOS 上较新的 IntelliJ 版本,全局数据源可以在 ~/Library/Application Support/JetBrains/IntelliJIdea2020.3/options/dataSources.xml 找到,当然要根据实际版本号进行调整。
  • 也适用于 Ubuntu。在密码和密钥中找到它
【解决方案5】:

您还可以恢复数据库密码。 过去我发现自己需要几次。我在这里提供了 MacOS 的详细信息,但其他操作系统可能是相似的。

要恢复这些,您需要转到设置数据库的项目目录,进入隐藏的 .idea 文件夹并搜索 dataSources.xml 文件,您将在其中找到每个数据库的 uuid :

此 UUID 是您需要在“钥匙串访问”中搜索的内容。

【讨论】:

    【解决方案6】:

    访问已保存的 JetBrains 产品数据库密码

    我正在访问 DataGrip 的 DataSource 密码,但这应该适用于任何 JetBrains 产品,如 IntelliJ。令人困惑的是,我能找到的所有信息都指定需要主密码才能解密这些密码,但我从未设置主密码。您实际上可以通过使用之后设置的主密码来解密您的密码。

    获取密码

    1. 打开 JetBrain 产品的设置密码设置。设置 > 外观和行为 > 系统设置 > 密码
    2. 您的密码应保存在 .kdbx 文件中(例如 C:/Users///config/c.kdbx)
    3. 选择此文件右侧的 3 个点并设置您的主密码(如果已设置,则可以保留)
    4. KeyPass打开.kdbx文件,使用之前的主密码,您可以将密码直接复制到剪贴板,或使用默认热键Ctrl + H显示密码

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多