www.pudn.com > 20071920285172.rar > DESEncrypt.cs


using System; 
using System.Text; 
using System.IO; 
using System.Security.Cryptography; 
 
namespace Login.DataSource 
{ 
    ///  
    /// DESEncrypt 的摘要说明。 
    ///  
    public class DESEncrypt 
    { 
        private byte[] Keys = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };//默认密钥向量 
        public DESEncrypt() 
        { 
            // 
            // TODO: 在此处添加构造函数逻辑 
            // 
        } 
        ///  
        /// DES加密字符串 
        ///  
        /// 待加密的字符串 
        /// 加密密钥,要求为8位 
        /// 加密成功返回加密后的字符串,失败返回源串 
        private string EncryptDES(string encryptString, string encryptKey) 
        { 
            try 
            { 
                byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8)); 
                byte[] rgbIV = Keys; 
                byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString); 
                DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider(); 
                MemoryStream mStream = new MemoryStream(); 
                CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write); 
                cStream.Write(inputByteArray, 0, inputByteArray.Length); 
                cStream.FlushFinalBlock(); 
                return Convert.ToBase64String(mStream.ToArray()); 
            } 
            catch 
            { 
                return encryptString; 
            } 
        } 
        ///  
        /// DES解密字符串 
        ///  
        /// 待解密的字符串 
        /// 解密密钥,要求为8位,和加密密钥相同 
        /// 解密成功返回解密后的字符串,失败返源串 
        private string DecryptDES(string decryptString, string decryptKey) 
        { 
            try 
            { 
                byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey); 
                byte[] rgbIV = Keys; 
                byte[] inputByteArray = Convert.FromBase64String(decryptString); 
                DESCryptoServiceProvider DCSP = new DESCryptoServiceProvider(); 
                MemoryStream mStream = new MemoryStream(); 
                CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write); 
                cStream.Write(inputByteArray, 0, inputByteArray.Length); 
                cStream.FlushFinalBlock(); 
                return Encoding.UTF8.GetString(mStream.ToArray()); 
            } 
            catch 
            { 
                return decryptString; 
            } 
        } 
        ///  
        /// 给外部调用的DES算法加密。 
        ///  
        public string DES(string decryptString) 
        { 
            return EncryptDES(decryptString,"cust-stu"); 
        } 
        ///  
        /// 给外部调用的DES算法解密。 
        ///  
        public string UNDES(string decryptString) 
        { 
            return DecryptDES(decryptString, "cust-stu"); 
        } 
    } 
}