Нет, простого способа нет: вы можете запутывать вещи сколько угодно, но если открытый текстовый пароль доступен приложению в любой момент, не требуя доступа к каким-либо ресурсам, кроме его собственного исходного кода, он может быть извлеченным любым человеком, имеющим доступ к тому же исходному коду.
При использовании протокола, такого как FTP, все упражнение в любом случае немного бессмысленно: любой, кто способен загрузить Wireshark , может за считанные секунды перехватить учетные данные с сетевого провода, если не меньше.
Шаги к правильному решению вашей проблемы:
- Переключиться на безопасный протокол, такой как SFTP или FTP + SSL
- Использовать аутентификацию с открытым ключом вместо пароля (SFTP и FTP + SSL поддерживают это, хотя и немного по-разному)
- Предоставьте каждому развертыванию программного обеспечения (желательно уникальную, чтобы вы могли обнаружить общий доступ к учетным данным и отключить скомпрометированные учетные записи) копию личного ключа / сертификата, необходимого для входа в систему
- Храните закрытый ключ / сертификат наиболее безопасным способом на платформе, на которой вы работаете. В Windows это означает использование хранилища сертификатов - см. в этой статье MSDN Magazine , где можно найти хорошее введение
РЕДАКТИРОВАТЬ (после изменения исходного вопроса): первый абзац моего ответа в равной степени относится к таким вещам, как пароли базы данных и т. Д. Решение для таких ситуаций становится еще более специфичным для платформы. Если ваша конкретная комбинация базы данных / любой другой / ОС не поддерживает безопасный вход в систему, вы не можете ничего сделать.
Например: в Windows SQL Server поддерживает проверку подлинности NTLM, что позволяет устанавливать права доступа к базе данных на основе существующих учетных записей Windows, обеспечивая автоматическое безопасное хранение и передачу паролей, которые относительно трудно обойти. Если аутентификация NTLM не может быть использована, лучшее, что вы можете сделать (как это рекомендуется в .NET Framework), - это сохранить пароль, зашифрованный с помощью машинно-зависимого ключа, в файле конфигурации. Однако эту «защиту» тривиально обходят с помощью отладчика, поскольку в определенный момент требуется пароль в виде открытого текста.