データベース内の機密データの暗号化シーケンスを作成しています。
現在、UserIdに基づいてGUIDを取得し、それをハッシュに通しています。次に、Rfc2898DeriveBytesを介してハッシュを実行し、Rijndael関数を使用してデータを暗号化するために使用するキーとIVを取得します。
私のコードは次のようになります:
var salt = new byte[] { 1, 2, 23, 234, 37, 48, 134, 63, 248, 4 };
const int iterations = 1000;
using (var rfc2898DeriveBytes = new Rfc2898DeriveBytes(GenerateHash("2525"), salt, iterations)) {
_key = rfc2898DeriveBytes.GetBytes(32);
_iv = rfc2898DeriveBytes.GetBytes(16);
}
次に、_keyと_ivを渡して、データを復号化または暗号化します。私の目標は、各ユーザーがすべてのセッションを通じて常に一意のキーにアクセスできるようにすることです。そうは言っても、何をランダム化してこの機能を維持できるのでしょうか。必要なデータを取得するには、常に同じソルトと同じIVを使用する必要がありますか?