ASP.NET加密解密

来源:互联网 发布:java方法注释快捷键 编辑:程序博客网 时间:2024/04/26 10:39

1.MD5加密

 public static string md5(string secret)    {        //  (1)MD5普通加密        //获取要加密的字段,并转化为Byte[]数组         byte[] data = System.Text.Encoding.Unicode.GetBytes(secret);        //建立md5加密服务          System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();        //执行加密操作        //加密Byte[]数组          byte[] result = md5.ComputeHash(data);        //转化为字符串         return System.Text.Encoding.Default.GetString(result);    }

2.请求加密

 // (3)ASP.NET中加密与解密QueryString的方法[常用]        //加密          string tmp = Convert.ToBase64String(System.Text.Encoding.Default.GetBytes(this.TextBox7.Text)).Replace("+", "%2B");        Response.Write("加密后:" + tmp);        //解密          string id= System.Text.Encoding.Default.GetString(Convert.FromBase64String(tmp.ToString().Replace("%2B", "+")));        Response.Write("解密后:" + id);

3.DES加密及解密的算法[常用密钥算法]

//简单的使用://--导入所需要的包     public static string Key = "DKMAB5DE";//加密密钥必须为8位      //加密算法      public static string DESEncrypt(string pToEncrypt)      {          DESCryptoServiceProvider des = new DESCryptoServiceProvider();          byte[] inputByteArray = Encoding.Default.GetBytes(pToEncrypt);          des.Key = ASCIIEncoding.ASCII.GetBytes(Key);          des.IV = ASCIIEncoding.ASCII.GetBytes(Key);          MemoryStream ms = new MemoryStream();          CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);         cs.Write(inputByteArray, 0, inputByteArray.Length);          cs.FlushFinalBlock();          StringBuilder ret = new StringBuilder();         foreach (byte b in ms.ToArray())          {  ret.AppendFormat("{0:X2}", b);  }         ret.ToString();          return ret.ToString();      }      //解密算法      public static string DESDecrypt(string pToDecrypt)      {  DESCryptoServiceProvider des = new DESCryptoServiceProvider();         byte[] inputByteArray = new byte[pToDecrypt.Length / 2];         for (int x = 0; x < pToDecrypt.Length / 2; x++)          {              int i = (Convert.ToInt32(pToDecrypt.Substring(x * 2, 2), 16));             inputByteArray[x] = (byte)i;          }          des.Key = ASCIIEncoding.ASCII.GetBytes(Key);          des.IV = ASCIIEncoding.ASCII.GetBytes(Key);          MemoryStream ms = new MemoryStream();          CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);         cs.Write(inputByteArray, 0, inputByteArray.Length);          cs.FlushFinalBlock();          StringBuilder ret = new StringBuilder();          return System.Text.Encoding.ASCII.GetString(ms.ToArray());     } 
4.RSA加密及解密的算法[常用密钥算法]

//简单的使用://--导入所需要的包     //加密算法     public string RSAEncrypt(string encryptString)      {          CspParameters csp = new CspParameters();          csp.KeyContainerName = "whaben";          RSACryptoServiceProvider RSAProvider = new RSACryptoServiceProvider(csp);          byte[] encryptBytes = RSAProvider.Encrypt(ASCIIEncoding.ASCII.GetBytes(encryptString), true);          string str = "";         foreach (byte b in encryptBytes)          {              str = str + string.Format("{0:x2}", b);         }  return str;     }      //解密算法      public string RSADecrypt(string decryptString)    {        CspParameters csp = new CspParameters();        csp.KeyContainerName = "whaben";        RSACryptoServiceProvider RSAProvider = new RSACryptoServiceProvider(csp);        int length = (decryptString.Length / 2);        byte[] decryptBytes = new byte[length];        for (int index = 0; index < length; index++)        {            string substring = decryptString.Substring(index * 2, 2);            decryptBytes[index] = Convert.ToByte(substring, 16);        }        decryptBytes = RSAProvider.Decrypt(decryptBytes, true);        return ASCIIEncoding.ASCII.GetString(decryptBytes);    }



0 0
原创粉丝点击