我想在以下代码中加密我提供的密码:
<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>
我不想硬编码密码.我该怎么加密呢?请提供您的建议.我用谷歌搜索,但找不到适合我的解决方案.
谢谢.
最佳答案 有很多方法可以做到这一点.我只描述了两个最简单的:
您是否考虑过使用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)