2012-04-22 12 views
2

を非表示にするだけで任意の提案は.. ..純デスクトップアプリケーション内の機密データ(FTPアカウント、データベースれたconnectionString、など)を隠すための最良の方法がどうなるかお聞きして下さいたい:)重要なデータ

私は知っていましたアプリケーションにデータを置くと、アプリケーションがdeobfuscatedまたは逆コンパイルする場合は、非表示のデータが公開されるかということを念頭になりました。

私は、アプリケーション設定

Properties.Settings.Default.MyConnectionString = theConString; 

を使用してみましたが、逆コンパイル時にまだデータがseendすることができます。

何か提案してください。

+3

あなたは本当にそれを行うことはできません。アプリケーションがデータにアクセスできる場合、それを実行するすべてのユーザーもデータにアクセスできます。重要なデータを非表示にする場合は、それらをアプリケーションにまったく置かないでください。 – svick

+0

@ svickのポイントはあなたを守っている重要なものですか?あなたのアプリケーションの決定されたエンドユーザーがそれらを見ることができないようにしようとしているなら、アプリケーションにまったく格納されていない可能性があります。つまり、エンドユーザーのPC上の権限のないユーザー(たとえば、ウイルスなど)がそれらを読み取ることを防ぐために、**それらを安全に保存する**方法があります。 –

答えて

5

あなたはapp.configファイルの全部または一部を暗号化することができます。これは、データベース接続文字列を保護する場合に特によく使用されます。ここで

はどのようにこの程度detailed articleです。簡単に言えば、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); 
    } 
} 
+0

OK ..私はこのソリューションを試してみましょう..ありがとうボス.. :) –

関連する問題