パスワードで保護された Access 2010 データベースに接続するために OleDb を使用する C# 2010 Winformsアプリケーションがあります。これはオンラインアプリケーションではありません!
私は現在、Eazfuscator.NETを使用して難読化された接続文字列にパスワードをプレーンテキストで保存しています [これは非常に安全ではないことがわかっています] 。逆コンパイルやその他の実用的な方法で取得できないように、パスワードを安全に保存する方法に興味があります。
app/web.config で接続文字列を暗号化することにより、ASP.NET アプリケーションに対してこれを行う方法があることは承知していますが、私のアプリケーションはデスクトップ アプリケーションであるため、うまくいきません。
これまでのところ、これを達成する方法は見つかりませんでした。
これが私がやろうと思ったことです:
データベースにアクセスできるユーザーは 1 人だけであるため、ユーザーにパスワードを要求します。入力パスワードのハッシュ (SHA1 / SHA512) を取得し、ハッシュから特定の文字数を選択してソルトし、接続文字列に追加して接続を試みます。
明らかに、ユーザーがパスワードを忘れた場合、ブルート フォースを使用する以外にデータベースにアクセスする方法はまったくありません。
プログラムの接続文字列で使用されるパスワードを保存して、実用的な手段で取得できないようにする方法はありますか?