ITPub博客

首页 > Linux操作系统 > Linux操作系统 > DataSet加解密到Xml

DataSet加解密到Xml

原创 Linux操作系统 作者:思月行云 时间:2009-09-14 14:54:32 0 删除 编辑

本文转自:http://www.cnblogs.com/zjzkiss/archive/2006/06/12/423446.html

    最近在一个工程中需要对DataSet进行加密,然后以文件形式传输后在另一端解密还原。于是查询了一些资料,发现多是对字符串和文件加密的方法。于是只好自力更生,参考.net的对称加密技术和网上的一些资料,研究出了DataSet的加密方法。

    代码比较简单,附下:

1  using System;
2  using
System.Collections;
3  using
System.Security.Cryptography;
4  using
System.IO ;
5  using
System.Data;
6  using
System.Xml.Serialization;
7  namespace
zjz.ClsDoCode
8  
{
9      /**//**//**/
///
10    /// ClsEncryption 的摘要说明。
11    ///

12     public class ClsEncryption
13    
{
14        public
ClsEncryption()
15         
{
16             //

17            // TODO: 在此处添加构造函数逻辑
18             
//
19          }

20         //密钥
21        //获取或设置对称算法的机密密钥。机密密钥既用于加密,也用于解密。为了保证对称算法的安全,必须只有发送方和接收方知道该机密密钥。有效密钥大小是由特定对称算法实现指定的,密钥大小在 LegalKeySizes 中列出。

22         private static byte[] DESKey = new byte[] {11, 23, 93, 102, 72, 41, 18, 12};
23         //获取或设置对称算法的初始化向量

24         private static byte[] DESIV = new byte[] {75, 158, 46, 97, 78, 57, 17, 36};
25

26          /**//**//**/
///
27         /// 加密DataSet
28        ///

29         ///
30        ///

31        public static void EncryptDataSetToXml(DataSet objDataSet,string outXmlFilePath)
32        
{
33             DESCryptoServiceProvider objDES = new
DESCryptoServiceProvider();
34             FileStream fout = new
FileStream(outXmlFilePath, FileMode.OpenOrCreate, FileAccess.Write);
35            //用指定的 Key 和初始化向量 (IV) 创建对称数据加密标准 (DES) 加密器对象

36             CryptoStream objCryptoStream = new CryptoStream(fout, objDES.CreateEncryptor(DESKey, DESIV), CryptoStreamMode.Write);
37             StreamWriter objStreamWriter = new
StreamWriter(objCryptoStream);
38             XmlSerializer objXmlSer = new XmlSerializer(typeof
(DataSet));
39
             objXmlSer.Serialize(objStreamWriter, objDataSet);
40
             objStreamWriter.Close();
41

42         }

43        public static DataSet DecryptDataSetFromXml(string inXmlFilePath)
44        
{
45             DESCryptoServiceProvider objDES = new
DESCryptoServiceProvider();
46             FileStream fin = new
FileStream(inXmlFilePath, FileMode.Open , FileAccess.Read );
47            //用指定的 Key 和初始化向量 (IV) 创建对称数据加密标准 (DES) 加密器对象

48            CryptoStream objCryptoStream = new CryptoStream(fin, objDES.CreateDecryptor(DESKey, DESIV), CryptoStreamMode.Read);
49             TextReader objTxrReader = new
StreamReader(objCryptoStream);
50             XmlSerializer objXmlSer = new XmlSerializer(typeof
(DataSet));
51             DataSet ds =
(DataSet)objXmlSer.Deserialize(objTxrReader);
52            return
ds;
53         }

54     }
55}
56

        小结:关于对称加密算法,大家可以参考微软的资料和网上的资料,这里就不多做解释了。下面是源代码文件,里面还包含有字符串和文件加密的方法,当然那些是别人的代码。

远程源代码下载:/Files/zjzkiss/ClsDoCode.rar

本地源代码下载:http://space.itpub.net/?uid-21146222-action-viewspace-itemid-614617

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21146222/viewspace-614615/,如需转载,请注明出处,否则将追究法律责任。

下一篇: ClsDoCode.rar
请登录后发表评论 登录
全部评论

注册时间:2009-03-18

  • 博文量
    49
  • 访问量
    66852