zoukankan      html  css  js  c++  java
  • DES加密解密

    using System;
    using System.Security.Cryptography;  
    using System.Text;
    namespace DBUtility
    {
        /// <summary>
        /// DES加密/解密类。
        /// </summary>
        public class DESEncrypt
        {
            public DESEncrypt()
            {            
            }
    
            #region ========加密======== 
     
            /// <summary>
            /// 加密
            /// </summary>
            /// <param name="Text"></param>
            /// <returns></returns>
            public static string Encrypt(string Text) 
            {
                return Encrypt(Text, "deskey");
            }
            /// <summary> 
            /// 加密数据 
            /// </summary> 
            /// <param name="Text"></param> 
            /// <param name="sKey"></param> 
            /// <returns></returns> 
            public static string Encrypt(string Text,string sKey) 
            { 
                DESCryptoServiceProvider des = new DESCryptoServiceProvider(); 
                byte[] inputByteArray; 
                inputByteArray=Encoding.Default.GetBytes(Text); 
                des.Key = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8)); 
                des.IV = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8)); 
                System.IO.MemoryStream ms=new System.IO.MemoryStream(); 
                CryptoStream cs=new CryptoStream(ms,des.CreateEncryptor(),CryptoStreamMode.Write); 
                cs.Write(inputByteArray,0,inputByteArray.Length); 
                cs.FlushFinalBlock(); 
                StringBuilder ret=new StringBuilder(); 
                foreach( byte b in ms.ToArray()) 
                { 
                    ret.AppendFormat("{0:X2}",b); 
                } 
                return ret.ToString(); 
            } 
    
            #endregion
            
            #region ========解密======== 
       
     
            /// <summary>
            /// 解密
            /// </summary>
            /// <param name="Text"></param>
            /// <returns></returns>
            public static string Decrypt(string Text) 
            {
                return Decrypt(Text, "deskey");
            }
            /// <summary> 
            /// 解密数据 
            /// </summary> 
            /// <param name="Text"></param> 
            /// <param name="sKey"></param> 
            /// <returns></returns> 
            public static string Decrypt(string Text,string sKey) 
            { 
                DESCryptoServiceProvider des = new DESCryptoServiceProvider(); 
                int len; 
                len=Text.Length/2; 
                byte[] inputByteArray = new byte[len]; 
                int x,i; 
                for(x=0;x<len;x++) 
                { 
                    i = Convert.ToInt32(Text.Substring(x * 2, 2), 16); 
                    inputByteArray[x]=(byte)i; 
                } 
                des.Key = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8)); 
                des.IV = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8)); 
                System.IO.MemoryStream ms=new System.IO.MemoryStream(); 
                CryptoStream cs=new CryptoStream(ms,des.CreateDecryptor(),CryptoStreamMode.Write); 
                cs.Write(inputByteArray,0,inputByteArray.Length); 
                cs.FlushFinalBlock(); 
                return Encoding.Default.GetString(ms.ToArray()); 
            } 
     
            #endregion 
    
    
        }
    }

     

  • 相关阅读:
    前端进击的巨人(一):执行上下文与执行栈,变量对象
    读书笔记(06)
    前端博客收藏
    Nodejs-Can't set headers after they are sent
    Mac OS安装包管理工具Homebrew教程
    webpack自动化构建脚本指令npm run dev/build
    使用express搭建node中间件
    【转】基于localStorage的资源离线和更新技术
    web前端性能优化
    Vue生命周期详解
  • 原文地址:https://www.cnblogs.com/zhaoyl9/p/11096678.html
Copyright © 2011-2022 走看看