asp.net DES加密解密

来源:互联网 发布:传奇 经验 数据库 编辑:程序博客网 时间:2024/04/29 18:05
//加密
  public string DesEncrypt(string strText, string strEncrKey)
  {
   byte[] byKey=null;
   byte[] IV= {0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF};
   try
   {
    byKey = System.Text.Encoding.UTF8.GetBytes(strEncrKey.Substring(0,8));
    DESCryptoServiceProvider des = new DESCryptoServiceProvider();
    byte[] inputByteArray =System.Text.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();
    return Convert.ToBase64String(ms.ToArray());
   }
   catch(System.Exception error)
   {
    MessageBox.Show(error.Message);
    return "error:" +error.Message+"/r";
   }
  }
 
  //解密
  public string DesDecrypt(string strText,string sDecrKey)
  {
   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(sDecrKey.Substring(0,8));
    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();
    return encoding.GetString(ms.ToArray());
   }
   catch(System.Exception error)
   {
    MessageBox.Show(error.Message);
    return "error:"+error.Message+"/r";
   }
  }