首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

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

2012-05-27 
求大神帮忙~~~~~关于DES加密的问题论坛的各位大神,帮个忙。我想通过DES加密来存储我的各种密码~我想用一个

求大神帮忙~~~~~关于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 

热点排行