如何在 Inno Setup 中安全地将证书密码传递给 signtool.exe?

How can I securely pass the certificate password to signtool.exe in Inno Setup?

如何安全地将密码传递给 signtool.exe? 这是代码:

[Setup]
SignTool=mysigntool signtool.exe" sign /f <path_to_pfx_certificate> /p <certificate's_password> $f

我知道有GetSHA1OfString这样的方法,但这里我需要相反的方法。

如果你问的是如何加密密码,那是没有意义的。加密需要密钥(又名密码)。所以你最终得到了另一个密码,你又需要将它以明文形式存储在某个地方。这是先有鸡还是先有蛋的问题。

你所能做的就是obfuscate密码。


考虑通过将证书放入 Windows 证书库而不是受密码保护的文件来保护证书。这与您遇到的问题相同,只是针对 MSBuild:How do I securely store a .pfx password to use in MSBuild? 答案非常通用。您只需在 signtool 命令行中将 MSBuild 的 %(SignFiles.Identity) 替换为 Inno Setup 的 $f

signtool.exe sign /sha1 <value> /t ... $f

其他相关问题:

  • How do I securely configure a CI server to digitally sign binaries?
  • Automated Code Signing - Protecting the private key