zoukankan      html  css  js  c++  java
  • .net下DES加密解密算法的封装

    private string _DESKey=""; 
    public string DESKey  
      {
       set
       {
        _DESKey=value;
       }
      }
      public string DESEncrypt(string toEncrypt)
      {
       //定义DES加密服务提供类
       DESCryptoServiceProvider des=new DESCryptoServiceProvider();
       //加密字符串转换为byte数组
       byte[] inputByte=System.Text.ASCIIEncoding.UTF8.GetBytes(toEncrypt);
       //加密密匙转化为byte数组
       byte[] key = Encoding.ASCII.GetBytes(_DESKey); //DES密钥(必须8字节)
       des.Key=key;
       des.IV=key;
       //创建其支持存储区为内存的流
       MemoryStream ms=new MemoryStream();
       //定义将数据流链接到加密转换的流
       CryptoStream cs=new CryptoStream(ms,des.CreateEncryptor(),CryptoStreamMode.Write);
       cs.Write(inputByte, 0, inputByte.Length);
       cs.FlushFinalBlock();
       StringBuilder ret = new StringBuilder();
       foreach (byte b in ms.ToArray())
       {
        //向可变字符串追加转换成十六进制数字符串的加密后byte数组。
        ret.AppendFormat("{0:X2}", b);
       }
       return ret.ToString();

      }
      public string DESDecrypt(string toDecrypt)
      {
       //定义DES加密解密服务提供类
       DESCryptoServiceProvider des = new DESCryptoServiceProvider();
       //加密密匙转化为byte数组
       byte[] key = Encoding.ASCII.GetBytes(_DESKey);
       des.Key = key;
       des.IV = key;
       //将被解密的字符串每两个字符以十六进制解析为byte类型,组成byte数组
       int length = (toDecrypt.Length / 2);
       byte[] inputByte = new byte[length];
       for (int index = 0; index < length; index++)
       {
        string substring = toDecrypt.Substring(index * 2, 2);
        inputByte[index] = Convert.ToByte(substring, 16);
       }
       //创建其支持存储区为内存的流
       MemoryStream ms = new MemoryStream();
       //定义将数据流链接到加密转换的流
       CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
       cs.Write(inputByte, 0, inputByte.Length);
       cs.FlushFinalBlock();

       return ASCIIEncoding.UTF8.GetString((ms.ToArray()));
      }

  • 相关阅读:
    SSAS aggregation 的作用及其使用
    liblinear使用总结
    python绝对路径相对路径函数
    libsvm使用总结
    一次scrapy成功停止的信息
    简单总结scrapy使用方法
    python编码格式
    一次scrapy失败的提示信息:由于连接方在一段时间后没有正确答复或连接的主机没有反 应,连接尝试失败
    17.1 MySQL主从介绍 17.2 准备工作 17.3 配置主 17.4 配置从 17.5 测试主从同步
    16.1 Tomcat介绍 16.2 安装jdk 16.3 安装Tomcat
  • 原文地址:https://www.cnblogs.com/amylis_chen/p/2627740.html
Copyright © 2011-2022 走看看