丢失了 Java 密钥库密码

时间:2021-06-15 21:31:28

标签: java android keystore

我正在尝试更新我的 Android 应用,但我忘记了密钥库密码。

当我输入 keytool -list -v -keystore keystore.jks 时,我被要求输入密码,当我按回车键输入空密码时,我看到

Alias name: xxxx
Creation date: Jun 24, 2020
Entry type: PrivateKeyEntry

对于所有其他密码,我得到 keystore password was incorrect

现在我想更改我的密码,所以我输入 keytool -storepasswd -keystore keystore.jks,当我被要求输入密码时 - 我按回车键输入一个空密码,但我收到一个错误的密码异常。

我无法得到它,如果我的密码是空的,为什么我在更改它时会收到错误的密码错误。如果我的密码不为空,为什么我输入空密码时会看到密钥列表?

我也有一些私钥,也许可以帮上忙

2 个答案:

答案 0 :(得分:1)

<块引用>

我无法得到它,如果我的密码是空的,为什么我在更改它时会收到错误的密码错误。如果我的密码不为空,为什么我输入空密码时会看到密钥列表?

关键名称和日期列表不被视为敏感信息。

根据Oracle keytool documentation

<块引用>

“必须为访问密钥库内容的所有命令提供密码。对于此类命令,当命令行中未提供 -storepass 选项时,系统会提示用户输入密码。”

“从密钥库中检索信息时,密码是可选的。如果未指定密码,则无法验证检索到的信息的完整性并显示警告。”

我同意这不清楚,但对我来说这意味着 --list 只检索信息而不是密钥库内容不需要密码......正如我们观察到的那样。

至于您提供错误密码的情况。好吧,如果您提供的密码是错误的,那么 keytool 命令应该至少会给您一条错误消息。如果要继续向您提供列表,那将是 (IMO) 相当奇怪。

但最重要的是 keytool 的行为就像它在这种边缘情况下的行为一样。确切地知道为什么不能帮助您解决丢失密码的问题。 (我认为解决这个问题的唯一途径是尝试暴力破解密码。)

答案 1 :(得分:0)

对于明显的不一致我没有任何解释(我有一段时间没有做过 Android 开发),但是如果结果证明您只需要恢复密码,有时可能会根据您的平台和其他情况进行恢复。请参阅this question 的答案中的方法。

相关问题