2

.Net デスクトップ アプリケーションで機密データ (ftp アカウント、データベース接続文字列など) を非表示にする最善の方法は何かを尋ねたいだけです..何か提案をお願いします.. :)

私はアプリケーションにデータを入れることを認識しており、アプリケーションが難読化解除または逆コンパイルされると、隠されたデータが公開されることを念頭に置いていました。

アプリケーション設定を使ってみた

Properties.Settings.Default.MyConnectionString = theConString;

ただし、逆コンパイルするとデータが表示されます。

提案をお願いします。

4

1 に答える 1

5

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);
    }
}
于 2012-04-22T16:30:40.140 に答える