使用空密钥库密码曾经可能吗?

时间:2012-10-12 15:44:29

标签: java android keytool

在从Android开发中长时间休息后签署apk时,我很惊讶我无法再输入空密钥库密码来解锁它。它只是我还是以前有可能?如果是这样,那么什么时候改变了,我怎么能设法解锁密钥库呢?

一些背景:也许我只是疯了,以前没有使用空密码进入密钥库,但是我可以使用的唯一可能的密码也不起作用(我发誓,没有我有机会使用另一个密码!)。

8 个答案:

答案 0 :(得分:8)

可以使用Java sdk中的keytool来操纵密钥库。

尝试在密钥库上执行keytool,并使用空密码提取证书。之后,将其导入新的密钥库。这次,请使用真实密码。

开关-exportcert将帮助您实现这一目标。

可能是您更新了java sdk,因此您无法输入空密码(由于该工具的某些安全性升级)。在这种情况下,您可以尝试安装较旧的sdk并执行上述操作。

祝你好运!

答案 1 :(得分:5)

编写一个简单的Java SE程序而不是使用keytool程序,该程序厌倦了使用您的密钥或列出别名。 API 应该(不是100%)允许您使用空("")密码。您还可以尝试第三方工具,例如portecle来列出/提取密钥。

答案 2 :(得分:4)

尝试默认的android调试模式密钥库密码android或java cacerts default changeit / changeme

答案 3 :(得分:3)

您不能为密钥库使用空密码。

我检查过,至于jdk 1.3 keytool不允许它,请参阅http://docs.oracle.com/javase/1.3/docs/tooldocs/win32/keytool.html doc明确指出:{/ p>

  

storepass 必须至少6个字符。必须将其提供给访问密钥库内容的所有命令。对于此类命令,如果命令行未提供-storepass选项,则会提示用户输入该命令。

为了好玩,我想从jdk 1.2尝试keytool并下载它,因为它的文档没有说明密码是强制性的,但我需要一个Windows NT盒来安装它! 我绝对不认为Android曾经使用过这个keytool版本。

很抱歉,但看起来你有:忘记了密码,或者用大写锁定/键盘布局错误输入了。 :(

编辑:

如果不是布局问题,您可以尝试

答案 4 :(得分:3)

我也面对这个问题而且非常奇怪。我有一个没有任何密码保护的遗留密钥库。我可以在SoapUI中成功使用它,但keytoolkeystore explorer无法打开它。我不得不创建一个已经有密码的新密钥库,从那以后一切都很好。

我怀疑Java 8比Java 7更挑剔。

keytool -importkeystore -srckeystore client.jks -destkeystore client2.jsk -srcstoretype JKS -deststoretype JKS -deststorepass changeit

答案 5 :(得分:1)

如果上述所有方法都失败了,您可以尝试破解它。相关问题:Android - Forgot keystore password. Can I decrypt keystore file?

答案 6 :(得分:0)

对我有用:

keytool -list -keystore keyStoreFileWithotPassword.jks -protected

更正:事实证明,列表功能可以正常运行,而无需输入实际密码!但是导入功能确实需要密码

答案 7 :(得分:0)

在尝试将密钥存储库提供程序用于hadoop时,我刚刚遇到了相同的问题,该提供程序使用none作为默认密码,请参阅:JavaKeyStoreProvider.java

我最终从OpenJDK8复制了原始keytool,并删除了此新实现中的限制(相同,但没有6个字符的限制):KeytoolWithoutPasswordLimits

通过这种方式,我设法使用none作为密码。