7

我有一个带有密码的批处理脚本,作为命令的一部分,该命令需要我不想提示输入凭据的凭据。我不担心外部威胁,但我真的不希望同事进去看到那个密码。虽然我相信他们不会滥用它,但我宁愿根本没有它。

只需将安全字符串存储在文本文件中,我就可以使用 PowerShell 轻松完成此操作。非常基本,但至少周围没有纯文本密码。这就是我真正需要的。

如何在批处理脚本中混淆密码?

4

2 回答 2

7

您还可以在备用数据流中隐藏密码:

首先,将有点秘密的密码添加到脚本的备用数据流中:

echo somewhatsecretpassword>script.bat:pwd

以下是如何将密码检索到变量中%p%

for /f "usebackq delims=" %i in (script.bat:pwd) do set p=%i

从批处理文件本身中,您可以使用以下内容:

for /f "usebackq delims=" %%i in (%~0:pwd) do set p=%%i

这不安全!

请考虑:

  • 这不安全!
  • 备用数据流不会被复制到任何地方(FAT)
  • 包含特殊字符的密码可能需要转义才能正确写入流
  • ...它不安全
于 2013-08-28T21:54:05.947 回答
1

另一种选择可能是混淆“密码”,这根本不安全,但在某些情况下可能就足够了

:main
set a=pas
set b=rd
set /p input=
if %input%==%a%swo%b% goto start
:start
<your code here>
goto main

密码是“密码”,但有点混淆。

于 2016-06-24T11:37:13.980 回答