//*********************************************************************** //类模块名称:encryptDES //版权所有:米特仪表公司 版权所有 //开发作者:段利庆(Lee) // QQ:14035344 // http://www.duanliqing.kudo.cn // http://leek.woku.com //创建日期:2010-08-19 //功能描述:DES加密字符串加密类模块 //*********************************************************************** using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; //using System.Windows.Forms; using System.Security.Cryptography; using System.IO; namespace Ex04_47 { /// <summary> /// DES加密字符串加密类模块 /// </summary> class encryptDES { /// <summary> /// 加密 /// </summary> /// <param name="key">密码 只可以为单字节字符(0..9 a..z) </param> /// <returns></returns> public string Encrypt(string skey,string str) { try { DESCryptoServiceProvider descsp = new DESCryptoServiceProvider(); byte[] key = Encoding.Unicode.GetBytes(skey); byte[] data = Encoding.Unicode.GetBytes(str.Trim()); MemoryStream MStream = new MemoryStream(); CryptoStream CStream = new CryptoStream(MStream, descsp.CreateEncryptor(key, key), CryptoStreamMode.Write); CStream.Write(data, 0, data.Length); CStream.FlushFinalBlock(); return Convert.ToBase64String(MStream.ToArray()); } catch (Exception ex) { //MessageBox.Show(ex.Message, "信息", MessageBoxButtons.OK, MessageBoxIcon.Information); return ""; } } /// <summary> /// 解密 /// </summary> /// <param name="key">密码 只可以为单字节字符(0..9 a..z)</param> /// <returns></returns> public string Decrypt(string skey, string str) { try { DESCryptoServiceProvider descsp = new DESCryptoServiceProvider(); byte[] key = Encoding.Unicode.GetBytes(skey); byte[] data = Convert.FromBase64String(str.Trim()); MemoryStream MStream = new MemoryStream(); CryptoStream CStream = new CryptoStream(MStream, descsp.CreateDecryptor(key, key), CryptoStreamMode.Write); CStream.Write(data, 0, data.Length); CStream.FlushFinalBlock(); return Encoding.Unicode.GetString(MStream.ToArray()); } catch (Exception ex) { //MessageBox.Show(ex.Message, "信息", MessageBoxButtons.OK, MessageBoxIcon.Information); return ""; } } } }