Прежде всего вам необходимо правильно настроить безопасность - то есть с наименее необходимым набором разрешений (ваш FTP-каталог не должен разрешать запись для групп / мира, что он в настоящее время делает в соответствии с тем, что вы описываете!) ...
Что касается проблемы с декомпиляцией имени пользователя / пароля - здесь может помочь криптография с открытым ключом:
- встраивает открытый ключ в ваше приложение (или просто распространяет его открыто вместе с вашим приложением)
- этот открытый ключ может быть одинаковым для всех клиентов
- если вам нужно предоставить клиенту какую-то специальную опцию, вы создаете XML / текстовый файл ...
- этот файл содержит все, что вы хотите вопределяемый вами формат
- этот файл может содержать все что угодно в открытом тексте
- вы подписываете этот файл (создайте подпись с вашим закрытым ключом, который НИКОГДА не распространяется)
- ваше приложение может проверитьфайл является подлинным путем проверки подписи (для этого нужен открытый ключ)
- если ваше приложение отправляет имя пользователя / пароль по сети, выберите протоколчто препятствует отслеживанию (например, SSL на стороне сервера, даже лучше в сочетании с клиентскими сертификатами)
- FTP можно использовать с SSL (называемым FTPS) или использовать что-то другое, например SFTP (часть стандарта SSH)
ваш клиент не может создавать действительные подписи на основе открытого ключа ... если ваше оборудование имеет какой-то неизменяемый серийный номер, который может прочитать ваше приложение, я бы поместил этот серийный номер оборудования в XML / текстфайл тоже ... таким образом, один файл XML / текстовый файл не может быть скопирован / использован разными клиентами ...
Вы даже можете расширить эту схему, предоставив специфичные для клиента открытые ключи (и сохранив соответствующие закрытыеключи закрыты) ... их можно распространять открыто вместе с приложением без необходимости скрывать их, поскольку общедоступный открытый ключ вообще никому не угрожает безопасности ...
Так что, если кто-либо когда-либо перезаписывает / изменяетваш файл, подпись будет просто неверной, таким образом, вы будете защищены от такого рода угроз ...
В идеале вы подписываетеприложение / сборка (для этого вам нужен сертификат), который обеспечивает некоторую защиту от вмешательства в ваше приложение / сборку, тогда у вас есть что-то действительно надежное, без каких-либо «хитростей» ...