【发布时间】:2021-06-04 02:31:44
【问题描述】:
Java 的keytool 有一个名为-keypass 的参数,除了用于整个密钥存储的密码之外,它还允许您设置一个(单独的)密码来保护您的私钥。
根据文档:
-keypass的值是用来保护生成的密钥对的私钥的密码。如果未提供密码,则会提示用户输入密码。如果您在提示符处按下 Return 键,则密钥密码将设置为与密钥库密码相同的密码。-keypass值必须至少包含六个字符。
但是,当我在调用此命令时省略密码时,我似乎根本没有收到提示,至少当它与 -genkeypair 结合使用以生成 RSA 密钥对时。相反,我只是获得一般帮助页面。如果我使用"" 强制输入“空”密码,那么它(正确地)告诉我密码至少应为 6 个字符。
有没有办法强制keytool 提示输入特定于密钥的密码,而不是根据-genkeypair 的文档在命令行中提供它?
我已经针对 Java 11 LTS 进行了测试:
keytool -genkeypair -alias test1 -keyalg RSA -keysize 4096 -sigalg SHA256withRSA -keystore test.pfx -storepass test1234
-keypass
或
keytool -genkeypair -alias test1 -keyalg RSA -keysize 4096 -sigalg SHA256withRSA -keystore test.pfx -storepass test1234
-keypass ""
两者似乎都不起作用;如您所见,我已经将-keypass 参数移到了末尾,因此它无法将参数作为密码吞噬。
【问题讨论】:
标签: java passwords keystore prompt keytool