ASP.NET MVC C#を使用してWebアプリケーションを構築しています。 私は機能を使用して途中でデータを符号化しています:MVCモデルのDBからエンコードされたデータを取得し、それをデコードして表示する方法
public string Encode(string encodeMe)
{
byte[] encoded = System.Text.Encoding.UTF8.GetBytes(encodeMe);
return Convert.ToBase64String(encoded);
}
これはクラスのコンストラクタに呼び出されますので、良い今のところ
public Booking(string name, string phone, string email, string date)
{
Name = Encode(name);
Phone = Encode(phone);
Email = Encode(email);
PreferredTime = DateTime.Parse(date);
}
、および暗号化されたデータがデータベースに書き込まれます。
しかし、私はこの機能を使用して、私は戻ってそれを読んだときにそのデータをデコードします:
public static string Decode(string decodeMe)
{
byte[] encoded = Convert.FromBase64String(decodeMe);
return System.Text.Encoding.UTF8.GetString(encoded);
}
私はこのような集合{}文でこれを追加しようとしている:
public string Name
{
get
{
return _name;
}
set
{
_name = Decode(value);
}
}
今何が起こるのですか?予約レコードはコンストラクターによってdb.Booking.Add(booking);
に正しくエンコードされますが、このSet {}ステートメントは実行中にdb.SaveChanges();
が呼び出され、暗号化されていないデータがデータベースに追加されますが、以前に暗号化されたデータはDisplayの検索時に正しくデコードされます。暗号化されていないデータをデコードしようとすると、例外が発生します。
申し訳ありませんが、より多くのデータを使用するなど、すべてを長くすることで解決しようとしています。また、!=暗号化をエンコードします。これはまったく不必要なようです。まともなデータベースであれば、そのままBase64エンコーディングを使用して文字列を格納することができます。 –
この時点では、エンコードやデコードに使用されるメソッドについては心配していません。後で変更することができます。データベースのデータを暗号化したい。私はちょうど途中でそれを暗号化する技術を習得し、それを復号化して表示用に復号したいと思っています。 –
私の答えを見てください。 –