私は誰かが私の問題を手伝ってくれることを期待しています。私は人事部で使用されるプログラムを作成する任務を受けています。このプログラムはイントラネットのサブセットであり、ユーザーの部門に基づいてさらに制限されます。このプログラムには、社会保障番号などの機密情報を保存する従業員プロファイルが含まれます。私はSSNを暗号化する最善の方法を見つけようとしています。そのため、SSNはデータベースのプレーンテキストとしては読み込めません。VB.NETを使用してweb.configに格納されたキーを使用してフィールドを暗号化するにはどうすればよいですか?
hereのように、System.Security.Cryptography名前空間を使用してVB.NETの組み込み関数を使用するコードが見つかりました。
コードは、フィールドが暗号化されているデータベースにデータが挿入されたときのように機能します。私が直面している問題は、従業員を元に戻したいとき、私はそれを解読することができないということです。
Dim rsa As New RSACryptoServiceProvider
基本的に代わりに私が最初の場所でデータを暗号化するために使用されるものの新しい暗号化サービスプロバイダを定義します:私は復号化された値を必要とするページ上でこれを行うので、私の推測ではあります。新しいRSACryptoServiceProviderを実行するときに新しい公開鍵/秘密鍵のペアが生成されるかどうかは疑問です。
次に私は、web.configに暗号化キーと復号化キーを格納して、ユーザーがどのページにいてもデータを解読できるようにすることを考えました。実際にアプリケーションで使用するのではなく、web.config内のフィールドを暗号化/復号化する方法(パスワードやデータベースへの接続など)を示しているので、これを使用する良い例は見つかりませんでした。これはデータを暗号化する良い方法でしょうか?このように、イントラネットのサブセットになるので、アプリケーションは外部に公開されずにローカルに開催されます。私はSSNをデータベースで読めるようにすることに非常に不快です。
これは私の最初の暗号化への進出であり、これは簡単な質問であれば謝ります。
SQL Server 2008 R2に接続されたVisual Studio 2015でVB.NETを使用しています。誰もが持っている提案に私は開いています。
あなたはイントラネットアクセスを制御プロファイルにSSNが必要なのはなぜ?情報がまったく必要ないように思える。私はその目的のために私のSSNを与えたくないことを知っています。 –
ありがとうございます。 SSNは、イントラネットアクセスを制御するプロファイルとは関係ありません。 SSNは、HRだけが使用する従業員プロファイルで使用されます。 HRのみがActive Directoryのアクセス許可に基づいてこのページにアクセスできます。 HRが必要な場合、従業員に関するすべての情報を再作成できるという考えから、従業員プロファイルにSSNが必要です。 SSNは、そのフィールドが暗号化されている従業員データベースに存在します。うまくいけば、これは理にかなっている。 – msdev23