加密MSBuild文件中的密码

时间:2013-05-21 04:20:43

标签: msbuild msbuild-task msbuild-4.0 msbuildextensionpack

我想在以下代码中加密我提供的密码:

<Target Name="Default">
    <!-- Install a service on a Remote Machine -->
    <MSBuild.ExtensionPack.Computer.WindowsService 
        TaskAction="Install" 
        ServiceName="__TestService1" 
        User="$(User)" 
        Password="$(password)"
        ServicePath="c:\WINDOWS\system32\taskmgr.exe" 
        RemoteUser="$(RemoteUser)" 
        RemoteUserPassword="$(RemoteUserPassword)" 
        MachineName="$(RemoteMachine)" />
</Target>

我不想硬编码密码。我该怎么加密呢?请提供您的建议。我用谷歌搜索,但找不到适合我的解决方案。

谢谢。

1 个答案:

答案 0 :(得分:2)

有很多方法可以做到这一点。我只描述了两个最简单的:

您是否考虑过使用NTFS加密文件系统的功能?

将密码作为纯文本存储在文件中,并将文件标记为已加密。 然后,只有用户创建的文件(默认情况下)才能访问文件(如果您更偏执,则可以通过为给定密码文件正确设置ACL来限制访问)。 然后您可以通过

轻松读取密码
<ReadLinesFromFile File="$(PasswordFile)" >
  <Output TaskParameter="Lines" ItemName="Password"/>
</ReadLinesFromFile>

其他可能性是在注册表中存储密码(HKLM或HKCU),为密钥上的所选用户设置权限。 您可以轻松read registry values

为了防止从ntuser.dat直接读取密码(注册表存储 - 您可以inline task加密密码,例如http://msdn.microsoft.com/en-us/library/ff649224.aspx}