如何通过命令行传递 jarsigner.exe 密码?
How to pass jarsigner.exe passphrase via commandline?
我知道这不安全,但是有什么简单的方法可以将密码短语传递给 jarsigner.exe:
jrsigner.exe -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ...
Enter Passphrase for keystore:
我在批处理文件中运行它。
嗯,为什么不直接使用相应的参数呢?
jarsigner -keystore my-keystore -storetype jceks -storepass "test" -keypass "test" my-archive.jar xander
分成几行以提高可读性(当然,您必须将所有参数放在一行中):
jarsigner
-keystore my-keystore # keystore path name
-storetype jceks # keystore type (whatever format yours is in)
-storepass "test" # keystore password
-keypass "test" # private key password
my-archive.jar # JAR path name
xander # key name (alias)
更新:请注意密码
- 如果密码不包含特殊字符,用双引号或单引号括住密码是可选的。
- 在 Windows 命令行中,您必须使用双引号括起带有特殊字符的密码,例如 space。我提到的是因为之前有人编辑了我的答案并使用了单引号,这只会在 Windows 命令行上失败。
- 在 UNIX-like 系统如 Linux 或 Windows Git Bash 或 Cygwin 中你可以同时使用双引号或单引号,但是双引号小心 shell 扩展。
我知道这不安全,但是有什么简单的方法可以将密码短语传递给 jarsigner.exe:
jrsigner.exe -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ...
Enter Passphrase for keystore:
我在批处理文件中运行它。
嗯,为什么不直接使用相应的参数呢?
jarsigner -keystore my-keystore -storetype jceks -storepass "test" -keypass "test" my-archive.jar xander
分成几行以提高可读性(当然,您必须将所有参数放在一行中):
jarsigner
-keystore my-keystore # keystore path name
-storetype jceks # keystore type (whatever format yours is in)
-storepass "test" # keystore password
-keypass "test" # private key password
my-archive.jar # JAR path name
xander # key name (alias)
更新:请注意密码
- 如果密码不包含特殊字符,用双引号或单引号括住密码是可选的。
- 在 Windows 命令行中,您必须使用双引号括起带有特殊字符的密码,例如 space。我提到的是因为之前有人编辑了我的答案并使用了单引号,这只会在 Windows 命令行上失败。
- 在 UNIX-like 系统如 Linux 或 Windows Git Bash 或 Cygwin 中你可以同时使用双引号或单引号,但是双引号小心 shell 扩展。