加密,解密数据表对象

本文关键字:对象 数据表 解密 加密 | 更新日期: 2023-09-27 17:53:04

我需要一些帮助来加密和解密一个DataTable对象。

问题场景:

  • 加密的所有内容System.Data.DataTable对象。

所需的特点:

  • 使用三重DES加密逻辑
  • 应该为所有列和/或行转换所有内容或所有单元格

请协助。

加密,解密数据表对象

我的想法是转换为XML (DataSet.GetXML),然后对这个XML数据进行加密。看一下System.Security.Cryptography命名空间(TripleDES类)。解密XML并将其转换回DataSet是很简单的。

我不确定这是最好的方法,但是,似乎只是通过行和列进行迭代(即只是使用双for循环,或foreach),并使用此:http://msdn.microsoft.com/en-us/library/system.security.cryptography.tripledes.aspx做三重DES。这段代码没有被检查,但它应该是这样的:

 String fin = cell1.ToString();
//Create variables to help with read and write.
byte[] bin = new byte[100]; //This is intermediate storage for the encryption.
long rdlen = 0;              //This is the total number of bytes written.
long totlen = fin.Length;    //This is the total length of the input file.
int len;                     //This is the number of bytes to be written at a time.
TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider();          
CryptoStream encStream = new CryptoStream(cell1, tdes.CreateEncryptor(tdesKey, tdesIV), CryptoStreamMode.Write);
Console.WriteLine("Encrypting...");
//Read from the input file, then encrypt and write to the output file.
while(rdlen < totlen)
{
    len = fin.Read(bin, 0, 100);
    encStream.Write(bin, 0, len);
    rdlen = rdlen + len;
    Console.WriteLine("{0} bytes processed", rdlen);
}