4

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

<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>

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

谢谢你。

4

1 回答 1

2

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

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

将密码以明文形式存储在文件中,并将文件标记为加密。然后只有用户创建的文件(默认情况下)可以访问文件(如果你更偏执,你可以通过为给定的密码文件正确设置 ACL 来限制访问)。然后您可以通过以下方式轻松读取密码

<ReadLinesFromFile File="$(PasswordFile)" >
  <Output TaskParameter="Lines" ItemName="Password"/>
</ReadLinesFromFile>

其他可能性是将密码存储在注册表(HKLM 或 HKCU)中,在密钥上设置选定用户的权限。您可以轻松读取注册表值

为了防止直接从 ntuser.dat 读取密码(注册表存储 - 您可以通过内联任务加密密码,例如这种方式http://msdn.microsoft.com/en-us/library/ff649224.aspx

于 2013-07-03T19:20:16.837 回答