繁体中文
设为首页
加入收藏
当前位置:.Net技术首页 >> Asp.Net开发 >> DataSet的加密解密

DataSet的加密解密

2007-09-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:最近在一个工程中需要对DataSet进行加密,然后以文件形式传输后在另一端解密还原。于是查询了一些资料,发现多是对字符串和文件加密的方法。于是只好自力更生,参考.net的对称加密技术和网上的一些资料,研究出了...
关键字:加密解密 DataSet

最近在一个工程中需要对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

责任编辑:admin
相关文章