//***********************************************************************<br />//類別模組名稱:encryptDES<br />//著作權:米特儀錶公司 著作權<br />//開發作者:段利慶(Lee)<br />// QQ:14035344<br />// http://www.duanliqing.kudo.cn<br />// http://leek.woku.com<br />//建立日期:2010-08-19<br />//功能描述:DES加密字串加密類別模組<br />//***********************************************************************</p><p>using System;<br />using System.Collections.Generic;<br />using System.ComponentModel;<br />using System.Data;<br />using System.Drawing;<br />using System.Text;<br />//using System.Windows.Forms;<br />using System.Security.Cryptography;<br />using System.IO;</p><p>namespace Ex04_47<br />{<br /> /// <summary><br /> /// DES加密字串加密類別模組<br /> /// </summary><br /> class encryptDES<br /> {<br /> /// <summary><br /> /// 加密<br /> /// </summary><br /> /// <param name="key">密碼 只可以為單位元組字元(0..9 a..z) </param><br /> /// <returns></returns><br /> public string Encrypt(string skey,string str)<br /> {<br /> try<br /> {<br /> DESCryptoServiceProvider descsp = new DESCryptoServiceProvider();<br /> byte[] key = Encoding.Unicode.GetBytes(skey);<br /> byte[] data = Encoding.Unicode.GetBytes(str.Trim());<br /> MemoryStream MStream = new MemoryStream();<br /> CryptoStream CStream = new CryptoStream(MStream, descsp.CreateEncryptor(key, key), CryptoStreamMode.Write);<br /> CStream.Write(data, 0, data.Length);<br /> CStream.FlushFinalBlock();<br /> return Convert.ToBase64String(MStream.ToArray());<br /> }<br /> catch (Exception ex)<br /> {<br /> //MessageBox.Show(ex.Message, "資訊", MessageBoxButtons.OK, MessageBoxIcon.Information);<br /> return "";<br /> }<br /> }</p><p> /// <summary><br /> /// 解密<br /> /// </summary><br /> /// <param name="key">密碼 只可以為單位元組字元(0..9 a..z)</param><br /> /// <returns></returns><br /> public string Decrypt(string skey, string str)<br /> {<br /> try<br /> {<br /> DESCryptoServiceProvider descsp = new DESCryptoServiceProvider();<br /> byte[] key = Encoding.Unicode.GetBytes(skey);<br /> byte[] data = Convert.FromBase64String(str.Trim());<br /> MemoryStream MStream = new MemoryStream();<br /> CryptoStream CStream = new CryptoStream(MStream, descsp.CreateDecryptor(key, key), CryptoStreamMode.Write);<br /> CStream.Write(data, 0, data.Length);<br /> CStream.FlushFinalBlock();<br /> return Encoding.Unicode.GetString(MStream.ToArray());<br /> }<br /> catch (Exception ex)<br /> {<br /> //MessageBox.Show(ex.Message, "資訊", MessageBoxButtons.OK, MessageBoxIcon.Information);<br /> return "";<br /> }<br /> }<br /> }<br />}<br />