|
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 /**//**//**//// <summary> 10 /// ClsEncryption 的摘要说明。 11 /// </summary> 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 /**//**//**//// <summary> 27 /// 加密DataSet 28 /// </summary> 29 /// <param name="objDataSet"></param> 30 /// <param name="outFilePath"></param> 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
来源:upschool.com.cn 作者: 关键字:DataSet,加密解密 发表日期:2006-6-12 网页显示有限 阅读全文请下载本文完整版WORD文档
上一篇:ORM的讨论 下一篇:ASP.NET 2.0 中使用自定义缓存依赖
2008-12-4 7:05:03
|