如何通过命令行传递jarsigner.exe密码?

问题描述 投票:0回答:2

我知道这是不安全的,但是有没有简单的方法可以将密码传递给 jarsigner.exe:

jrsigner.exe -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ...

输入密钥库的密码:

我正在批处理文件中运行它。

jarsigner
2个回答
67
投票

那么,为什么不简单地使用相应的参数呢?

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 命令行上,您必须使用双引号将带有特殊字符(例如空格)的密码括起来。我提到这一点是因为之前有人编辑了我的答案并使用了单引号,这在 Windows 命令行上只会失败。
  • 在 Linux 等类 UNIX 系统上,或者在 Windows Git Bash 或 Cygwin 中,您可以使用双引号或单引号,但使用双引号时要注意 shell 扩展。

0
投票

我的场景是 Unity 的 Google 插件停止将密码传递给 jarsigner。

在 Sign() 方法中,在文件上

\资产\GooglePlayPlugin

© www.soinside.com 2019 - 2024. All rights reserved.