丢失了java密钥库密码



我正在尝试更新我的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,当我被要求输入密码时,我按enter键输入一个空密码,我得到一个不正确的密码异常。

我无法获得它,如果我的密码是空的,为什么我在更改密码时会出现错误的密码。如果我的口令不是空的,我为什么在输入空通行证时会看到密钥列表?

我也有一些私钥,也许它可以帮助

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

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

根据Oraclekeytool文档:

"必须向访问密钥库内容的所有命令提供密码。对于这样的命令,当在命令行没有提供-storepass选项时,提示用户输入;

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

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

至于您提供错误密码的情况。如果您提供了一个错误的密码,那么keytool命令应该至少会给您一条错误消息。如果它无论如何都要给你一份清单,那(IMO(就相当奇怪了。

但最重要的是,keytool的行为与在这种边缘情况下的行为类似。确切地知道原因并不能帮助你解决丢失密码的问题。(我认为解决这个问题的唯一途径是尝试暴力破解密码。(

我对明显的不一致性没有任何解释(我已经有一段时间没有进行Android开发了(,但如果事实证明你只需要恢复密码,有时这是可能的,这取决于你的平台和其他情况。请参阅此问题答案中的方法。

最新更新