【问题标题】:How to pass jarsigner.exe passphrase via commandline?如何通过命令行传递 jarsigner.exe 密码?
【发布时间】:2017-06-17 22:32:44
【问题描述】:

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

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

输入密钥库的密码:

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

【问题讨论】:

    标签: jarsigner


    【解决方案1】:

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

    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 扩展。

    【讨论】:

    • 即使 -keypass my_coolpass 在命令行中,它仍然要求它
    • 您写的错误消息是:“输入 keystore 的密码”因此您不会丢失私钥的密码,而是丢失密钥库本身的密码。下次请仔细阅读我的答案。我记录了两个密码。该工具的命令行帮助也对其进行了描述。
    • 谢谢你,亲爱的@kriegaex
    • 你给了我时间的礼物。谢谢楼主!
    • 这正是像我这样的人喜欢 SO 的原因。我希望我能多次投票:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多