为keytool命令添加密码

时间:2014-02-28 11:11:18

标签: batch-file keytool

我已经制作了一个.bat文件来获取我的Android应用的SHA1,所以每次都不需要输入命令

keytool -list -v -keystore "Path/To/My/Key.jks"

当我运行bat文件时,我会被要求输入密码。是否可以将密码放在命令中,例如像--password MyPassword之类的东西,或者在.bat文件中等待输入你的密码行,然后发送密码?我对.bat文件没有任何经验,所以我不知道是否可以这样做。

我查看了--help for keytool,我看到的唯一密码标志是更改密码,而不是指定密码。

3 个答案:

答案 0 :(得分:21)

Oracle JDK附带的keytool允许您在-storepass的命令行中指定它,而您正在keytool -help而不是keytool -list -help。 (我想Android版本是一样的。)

C:\>keytool.exe -list -help
keytool -list [OPTION]...

Lists entries in a keystore

Options:

 -rfc                            output in RFC style
 -alias <alias>                  alias name of the entry to process
 -keystore <keystore>            keystore name
 -storepass <arg>                keystore password
 -storetype <storetype>          keystore type
 -providername <providername>    provider name
 -providerclass <providerclass>  provider class name
 -providerarg <arg>              provider argument
 -providerpath <pathlist>        provider classpath
 -v                              verbose output
 -protected                      password through protected mechanism

Use "keytool -help" for all available commands

答案 1 :(得分:0)

使用-storepass选项指定密钥库密码:

keytool <commands and options> -storepass changeit

changeit是默认的密钥库密码,但可以使用任何密码。

例如,使用默认密码添加证书:

keytool -importcert -trustcacerts -alias mycert -file mycert.cer -keystore .../lib/security/cacerts -storepass changeit

答案 2 :(得分:0)

如果您担心将密码存储在脚本中,并担心它会出现在您的命令行历史记录中(您应该这样做),请将密码存储在单独的文件中,保护它并引用它。

>

注意!这是 Linux / bash 特定的,OP 似乎在 Windows 上,但我希望这可以帮助其他人。

keytool -list -v -keystore "Path/To/My/Key.jks" -storepass $(cat < <(cat bin/.pw))

如果只有 keytool 具有 file:<filename> 客户端具有的 openssl 构造。