火焰

valeb
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

DES

Posted on 2017-09-27 15:42  valeb  阅读(155)  评论(0编辑  收藏  举报
  public static void Generator(out string key)
        {
            TripleDESCryptoServiceProvider des = (TripleDESCryptoServiceProvider)TripleDESCryptoServiceProvider.Create(); 
            key = ASCIIEncoding.ASCII.GetString(des.Key);
        }

        public static string EncryptDES(string data, string key)
        { 
            byte[] dataArray =  Encoding.UTF8.GetBytes(data);
            TripleDESCryptoServiceProvider DES = new TripleDESCryptoServiceProvider();
            ICryptoTransform desEncrypt = DES.CreateEncryptor(Encoding.UTF8.GetBytes(key), Encoding.UTF8.GetBytes(key));
            byte[] result = desEncrypt.TransformFinalBlock(dataArray, 0, dataArray.Length);
            string dbstr = null;
            for (int i = 0; i < result.Length; i++)
            {
                dbstr += result[i].ToString("X2");
            }
            return dbstr; 
        }


        public static string DecryptDES(string data, string key)
        {
            data = data.Replace(" ", "");
            if ((data.Length % 2) != 0)
                data += " ";
            byte[] dataArray = new byte[data.Length / 2];
            for (int i = 0; i < dataArray.Length; i++)
            {
                dataArray[i] = Convert.ToByte(data.Substring(i * 2, 2), 16);
            }  
            TripleDESCryptoServiceProvider DES = new TripleDESCryptoServiceProvider(); 
            ICryptoTransform desencrypt = DES.CreateDecryptor(Encoding.UTF8.GetBytes(key), Encoding.UTF8.GetBytes(key));
            byte[] result = desencrypt.TransformFinalBlock(dataArray, 0, dataArray.Length);
            return Encoding.UTF8.GetString(result);

        }