Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > .NET > C#.NET > DataSet的加密解密
【标  题】:DataSet的加密解密
【关键字】:DataSet
【来  源】:http://zjzkiss.cnblogs.com/archive/2006/06/11/423446.html

DataSet的加密解密

Your Ad Here

        最近在一个工程中需要对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[] {11239310272411812};
23         //获取或设置对称算法的初始化向量
24         private static byte[] DESIV = new byte[] {75158469778571736};
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
一道《微分方程数值解法》作业题:【上一篇】
ASP.NET 2.0 中使用自定义缓存依赖:【下一篇】
【相关文章】
  • 使用ClientDataSet 时必须记住的几点
  • 一个发送xml远程请求和接收xml请求结果并置入DataSet的方法
  • dataset和文件的数据压缩
  • 将DataSet更新自动提交到数据库工具类实现
  • 从dotNet到VB6之模仿构造OleDbDataAdapter与dataset结合
  • Entity as DTO vs Dataset as DTO - .Net Serialization Comparison
  • 如何使用强类型的DataSet。
  • Visual Studio 2005 中的新 DataSet 特性
  • 理解DataSet的数据缓存机制
  • Dataset+TableAdapter _.net最终数据访问类出现? 我的心血显然被藐视了
  • 【随机文章】
  • 有这种事?显示器引起的鼠标失灵?
  • 跨平台的INI处理源代码
  • 用开源软件搭建企业内部协作平台, Kill QQ MSN
  • AJAX案例研究之Gmail (zt)
  • Win32教程7-处理鼠标输入消息
  • ActionScript3.0学习笔记(一)--变量
  • POP3协议的基本命令
  • 一位IT从业人员的心路历程
  • volatile的意思
  • linux下主要系统文件说明
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.