1
暗号化フィールドを実行しています。 OKです。以下のコードです:XMLファイルの作成中にファイルを作成してメモリに保存し、暗号化(C#、WPF、LINQ)
XMLクラスを作成します。
ここprivate void btnSave_Click(object sender, RoutedEventArgs e)
{
XmlTextWriter xWriter = new XmlTextWriter("test.xml", Encoding.UTF8);
xWriter.Formatting = Formatting.Indented;
xWriter.WriteStartElement("root");
testViewClassDataContext dc = new testViewClassDataContext();
List<test_view> tvq = (from tt in dc.test_views
select tt).ToList();
var propertiesTestView = typeof(test_view).GetProperties();
var testViewValues = new List<string>();
loopPropXML(tvq, propertiesTestView, testViewValues, xWriter);
xWriter.WriteEndElement();
xWriter.Close();
}
public void loopPropXML<T>(IEnumerable<T> queryResult, PropertyInfo[] properites, List<string> addedValues, XmlTextWriter xWriter)
{
foreach (var qrl in queryResult)
{
var values = new List<object>();
xWriter.WriteStartElement("tv");
foreach (var property in properites)
{
Object value = property.GetValue(qrl, null);
xWriter.WriteStartElement(property.Name.ToString());
DESEncrypt testEncrypt = new DESEncrypt();
string pass = "qwertyuiop";
string encText = testEncrypt.EncryptString((value == null ? "" : value.ToString()), pass);
xWriter.WriteString(encText);
xWriter.WriteEndElement();
values.Add(value);
}
xWriter.WriteEndElement();
}
}
暗号化コードは、 "マイクロソフトアカデミーのC#" から取った次のとおりです。
static TripleDES CreateDES(string key)
{
MD5 md5 = new MD5CryptoServiceProvider();
TripleDES des = new TripleDESCryptoServiceProvider();
des.Key = md5.ComputeHash(Encoding.Unicode.GetBytes(key));
des.IV = new byte[des.BlockSize/8];
return des;
}
public string EncryptString(string plainText, string password)
{
byte[] plainTextBytes = Encoding.Unicode.GetBytes(plainText);
MemoryStream myStream = new MemoryStream();
TripleDES des = CreateDES(password);
CryptoStream cryptStream = new CryptoStream(myStream, des.CreateEncryptor(), CryptoStreamMode.Write);
cryptStream.Write(plainTextBytes, 0, plainTextBytes.Length);
cryptStream.FlushFinalBlock();
return Convert.ToBase64String(myStream.ToArray());
}
にそれを変更する方法:
- 最初のビルドファイルとメモリに保存
- 暗号化
- 最後に保存します。
あなたはフィールドの代わりにxmlファイル全体を暗号化することを意味しますか? –
はい:最初に私はちょうどxmlを作成し、メモリに保存(保存しない)してから暗号化して保存します。 – 4est
あなたはちょうど言ったことを実装できませんか? –