Сокрытие важных данных

Просто хочу спросить, что было бы лучшим способом скрыть конфиденциальные данные (учетные записи ftp, строки подключения к базе данных и т. д.) в настольных приложениях.Net... любые предложения, пожалуйста..:)

я знал о том, что нужно помещать данные в приложение, и помнил, что если приложение будет деобфусцировано или декомпилировано, скрытые данные будут выставлены.

я пытался использовать настройки приложения

Properties.Settings.Default.MyConnectionString = theConString;

но все же данные можно увидеть при декомпиляции.

любые предложения, пожалуйста.

1 ответ

Решение

Вы можете зашифровать все или часть файла app.config. Это особенно распространено для защиты строк подключения к базе данных.

Вот подробная статья о том, как это сделать. Вкратце, вот код оттуда для шифрования раздела строки подключения в app.config:

static void ToggleConfigEncryption(string exeConfigName)
{
    // Takes the executable file name without the
    // .config extension.
    try
    {
        // Open the configuration file and retrieve 
        // the connectionStrings section.
        Configuration config = ConfigurationManager.
            OpenExeConfiguration(exeConfigName);

        ConnectionStringsSection section =
            config.GetSection("connectionStrings")
            as ConnectionStringsSection;

        if (section.SectionInformation.IsProtected)
        {
            // Remove encryption.
            section.SectionInformation.UnprotectSection();
        }
        else
        {
            // Encrypt the section.
            section.SectionInformation.ProtectSection(
                "DataProtectionConfigurationProvider");
        }
        // Save the current configuration.
        config.Save();

        Console.WriteLine("Protected={0}",
            section.SectionInformation.IsProtected);
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.Message);
    }
}
Другие вопросы по тегам