读书人

求大神帮忙~关于DES加密的有关问题

发布时间: 2012-05-27 05:42:30 作者: rapoo

求大神帮忙~~~~~关于DES加密的问题
论坛的各位大神,帮个忙。

我想通过DES加密来存储我的各种密码~

我想用一个固定的Key来加密字符。

问题来了
public string GenerateKey()
{
DESCryptoServiceProvider desCrypto = (DESCryptoServiceProvider)DESCryptoServiceProvider.Create();
return ASCIIEncoding.ASCII.GetString(desCrypto.Key);
}
每次的Key都是变化的,怎么把我的口令(例如 hack+=3? )转换为Key?我试过强制转换,但是不知怎么操作。

大神们,求解!!!求具体做法!!

[解决办法]
byte[] key = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF }
这种格式
[解决办法]

C# code
   /// <summary>         /// 加密字符串         /// 注意:密钥必须为8位         /// </summary>         /// <param name="strText">字符串</param>         /// <param name="encryptKey">密钥</param>        /// <return>加密后字符串</return>        public static string DesEncrypt(string strText)         {            string outString="";            byte[] byKey=null;             byte[] IV= {0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF};             try             {                byKey = System.Text.Encoding.UTF8.GetBytes(encryptKey.Substring(0, encryptKey.Length));                 DESCryptoServiceProvider des = new DESCryptoServiceProvider();                byte[] inputByteArray = Encoding.UTF8.GetBytes(strText);                 MemoryStream ms = new MemoryStream();                 CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(byKey, IV), CryptoStreamMode.Write) ;                 cs.Write(inputByteArray, 0, inputByteArray.Length);                 cs.FlushFinalBlock();                outString = Convert.ToBase64String(ms.ToArray());             }             catch(System.Exception)             {                outString = "";             }            return outString;        }         /// <summary>         /// 解密字符串         /// </summary>         /// <param name="strText">加了密的字符串</param>         /// <param name="decryptKey">密钥</param>         public static string DesDecrypt(string strText)         {            string outString = "";            byte[] byKey = null;             byte[] IV= {0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF};            byte[] inputByteArray = new Byte[strText.Length];             try             {                byKey = System.Text.Encoding.UTF8.GetBytes(decryptKey.Substring(0, decryptKey.Length));                 DESCryptoServiceProvider des = new DESCryptoServiceProvider();                inputByteArray = Convert.FromBase64String(strText);                 MemoryStream ms = new MemoryStream();                 CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(byKey, IV), CryptoStreamMode.Write);                 cs.Write(inputByteArray, 0, inputByteArray.Length);                 cs.FlushFinalBlock();                 System.Text.Encoding encoding = new System.Text.UTF8Encoding();                 outString = encoding.GetString(ms.ToArray());             }             catch(System.Exception)             {                outString = "";             }            return outString;        }         #endregion 

读书人网 >C#

热点推荐