using System; using System.IO; using System.Security.Cryptography; using System.Text; namespace Secret { public class MD5 { /// <summary> /// MD5加密 /// </summary> /// <param name="s">需要加密的字符串</param> /// <returns></returns> public static string EncryptMD5(string s) { var md5 = new System.Security.Cryptography.MD5CryptoServiceProvider(); var result = ""; if (!string.IsNullOrWhiteSpace(s)) { result = BitConverter.ToString(md5.ComputeHash(UnicodeEncoding.UTF8.GetBytes(s.Trim()))); } return result; } } public class DES { //DES加密秘钥,要求为8位 private const string desKey = "xianglk1"; //默认密钥向量 private static byte[] Keys = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF }; /// <summary> /// DES加密 /// </summary> /// <param name="encryptString">待加密的字符串,未加密成功返回原串</param> /// <returns></returns> public static string EncryptDES(string encryptString) { try { byte[] rgbKey = Encoding.UTF8.GetBytes(desKey); byte[] rgbIV = Keys; byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString); DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider(); MemoryStream mStream = new MemoryStream(); CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write); cStream.Write(inputByteArray, 0, inputByteArray.Length); cStream.FlushFinalBlock(); return Convert.ToBase64String(mStream.ToArray()); } catch { return encryptString; } } /// <summary> /// DES解密 /// </summary> /// <param name="decryptString">待解密的字符串,未解密成功返回原串</param> /// <returns></returns> public static string DecryptDES(string decryptString) { try { byte[] rgbKey = Encoding.UTF8.GetBytes(desKey); byte[] rgbIV = Keys; byte[] inputByteArray = Convert.FromBase64String(decryptString); DESCryptoServiceProvider DCSP = new DESCryptoServiceProvider(); MemoryStream mStream = new MemoryStream(); CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write); cStream.Write(inputByteArray, 0, inputByteArray.Length); cStream.FlushFinalBlock(); return Encoding.UTF8.GetString(mStream.ToArray()); } catch { return decryptString; } } } }
<%@ WebHandler Language="C#" Class="insert" %> using System; using System.Web; using System.Collections.Generic; using System.Linq; using System.Text; using Secret; public class insert : IHttpHandler { public void ProcessRequest (HttpContext context) { using (DatayilanDataContext con = new DatayilanDataContext()) { string password = MD5.EncryptMD5(context.Request["password"]); users u = new users(); u.username = context.Request["username"]; u.password = password; u.sex = Convert.ToBoolean(context.Request["sex"]); u.email = context.Request["email"]; u.birthday = Convert.ToDateTime(context.Request["birthday"]); u.phone = context.Request["phone"]; u.country = context.Request["country"]; u.province = context.Request["province"]; u.city = context.Request["city"]; u.detailaddr = context.Request["detailaddr"]; u.postcode = context.Request["postcode"]; u.American = context.Request["American"]; u.asset = context.Request["asset"]; u.income = context.Request["income"]; u.employment = context.Request["employment"]; u.business = context.Request["business"]; u.experience = context.Request["experience"]; u.account = context.Request["account"]; u.idnumber = context.Request["idnumber"]; con.users.InsertOnSubmit(u); con.SubmitChanges(); } context.Response.End(); } public bool IsReusable { get { return false; } } }
<%@ WebHandler Language="C#" Class="denglu" %> using System; using System.Web; using System.Collections.Generic; using System.Linq; using System.Text; using Secret; public class denglu : IHttpHandler { public void ProcessRequest (HttpContext context) { string end = "{\"has\":\"false\"}"; string username = context.Request["username"]; string password =MD5.EncryptMD5( context.Request["password"]); using(DatayilanDataContext con=new DatayilanDataContext()) { users u = con.users.Where(r => r.username == username&&r.password==password).FirstOrDefault(); if (u != null) { end = "{\"has\":\"true\",\"id\":\""+u.ids+"\"}"; } context.Response.Write(end); context.Response.End(); } } public bool IsReusable { get { return false; } } }