• 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[] {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
  • 相关阅读:
    有关css的效果展示
    php将代码上传至服务器步骤
    php连接数据库
    PHP如何从一个页面跳转到另一个页面
    Windows计算器
    查询本地正在运行的端口号
    wamp虚拟路径访问配置
    sublime text3 Emmet (原zenCoding)安装方法
    Latex(一)公式自动编号与自动引用
    Linux下Django开发学习(一)
  • 原文地址:https://www.cnblogs.com/zjzkiss/p/423446.html
Copyright © 2020-2023  润新知