我想在以下代码中加密我提供的密码:
<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>
我不想硬编码密码。我该怎么加密呢?请提供您的建议。我用谷歌搜索,但找不到适合我的解决方案。
谢谢。
答案 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}