1

app.configから読み取るWindowsサービスがあります。

一部の設定を暗号化する必要がありますが、DPAPIを使用して実行しているマシンに基づいてファイルを暗号化するため、.NETで提供されるProtectedConfigurationProviderクラスを使用したくありません。

私が望んでいたのは、管理者がすでに暗号化されている構成ファイルを多くのマシンに展開し、必要に応じて各マシンにそれらを復号化させる方法でした。

パスワードをアセンブリにハードコーディングしたくないので、これをどのように行うことができるかわかりません。

4

2 に答える 2

9

問題を最も単純な形に減らします。

  • あなたはプログラムを持っています
  • 暗号化されたファイルが与えられます
  • そしてあなたはファイルを解読したい
  • キーをハードコーディングせずに

明らかな解決策は、信頼できるサードパーティに必要なときにキーを要求することです

于 2009-02-19T02:37:11.447 に答える
2

これを行うための1つの可能な方法は、ファイルの先頭に復号化キーを含めることです。キーは、キーから判別できる何らかの方法で再処理されています。1つの可能性は、たとえば16の異なるものを選択することです。たとえば、0は、最初の2バイトを最後までローテーションします。1は最後の2バイトを前に回転します。2はすべてのバイトに1を加算します。14の追加機能についても同様です。次に、この値をキーの前に「再処理フラグ」として追加します。

キーの最初のバイトは、キーをどう処理するかを示す16の異なるルーチンの1つへの分岐テーブルになります。再処理フラグは最初のバイトである必要はないことに注意してください。キーを処理するときにそのバイトを破棄することを覚えている限り、キーの任意のバイトにすることができます。

次に、使用する復号化アルゴリズムに従ってキーを処理します。

さて、この再処理フラグが与えられると(特にキー全体が16進数の場合)、誰かがロジックに従って、コードが実行した16の異なる関数のどれを決定し、復号化方法を理解する必要があります。それはすべての人を止めるつもりはありませんが、それはおそらく最も決心したものを除いてすべてを追い払うかなり良い仕事をするでしょう。

于 2009-02-19T02:43:14.070 に答える