Шифрование пароля в файле MSBuild
Я хочу зашифровать пароль, который я предоставляю в следующем коде:
<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 ответ
Есть много способов сделать это. Я опишу только два самых простых:
Задумывались ли вы об использовании функции шифрованной файловой системы NTFS?
Сохраните пароль в файле в виде открытого текста и отметьте файл как зашифрованный. Тогда только пользовательский файл (по умолчанию) имеет доступ к файлу (если вы более параноик, вы можете ограничить доступ, правильно установив ACL для данного файла паролей). Тогда вы можете легко прочитать пароль
<ReadLinesFromFile File="$(PasswordFile)" >
<Output TaskParameter="Lines" ItemName="Password"/>
</ReadLinesFromFile>
Другая возможность - сохранить пароль в реестре (HKLM или HKCU), настроить разрешение для выбранного пользователя по ключу. Вы можете легко прочитать значения реестра
Для предотвращения непосредственного чтения пароля из ntuser.dat (хранилище реестра - вы можете зашифровать пароль с помощью встроенной задачи, например, таким способом http://msdn.microsoft.com/en-us/library/ff649224.aspx)