我已经制作了一个.bat文件来获取我的Android应用的SHA1,所以每次都不需要输入命令
keytool -list -v -keystore "Path/To/My/Key.jks"
当我运行bat文件时,我会被要求输入密码。是否可以将密码放在命令中,例如像--password MyPassword
之类的东西,或者在.bat文件中等待输入你的密码行,然后发送密码?我对.bat文件没有任何经验,所以我不知道是否可以这样做。
我查看了--help for keytool,我看到的唯一密码标志是更改密码,而不是指定密码。
答案 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
构造。