闫新宇 2010-04-06
代码如下:
System.Security.Cryptography.MD5 System.Security.Cryptography.MD5CryptoServiceProvider() System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(strSource, "MD5")
代码如下:
System.Security.Cryptography.SHA1 System.Security.Cryptography.SHA1CryptoServiceProvider() System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(strSource, "SHA1")
代码如下:
/**//// <summary> /// 方法一:通过使用 new 运算符创建对象 /// </summary> /// <param name="strSource">需要加密的明文</param> /// <returns>返回16位加密结果,该结果取32位加密结果的第9位到25位</returns> public string Get_MD5_Method1(string strSource) { //new System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider(); //获取密文字节数组 byte[] bytResult = md5.ComputeHash(System.Text.Encoding.Default.GetBytes(strSource)); //转换成字符串,并取9到25位 string strResult = BitConverter.ToString(bytResult, 4, 8); //转换成字符串,32位 //string strResult = BitConverter.ToString(bytResult); //BitConverter转换出来的字符串会在每个字符中间产生一个分隔符,需要去除掉 strResult = strResult.Replace("-", ""); return strResult; } /**//// <summary> /// 方法二:通过调用特定加密算法的抽象类上的 Create 方法,创建实现特定加密算法的对象。 /// </summary> /// <param name="strSource">需要加密的明文</param> /// <returns>返回32位加密结果</returns> public string Get_MD5_Method2(string strSource) { string strResult = ""; //Create System.Security.Cryptography.MD5 md5 = System.Security.Cryptography.MD5.Create(); //注意编码UTF8、UTF7、Unicode等的选择 byte[] bytResult = md5.ComputeHash(System.Text.Encoding.UTF8.GetBytes(strSource)); //字节类型的数组转换为字符串 for (int i = 0; i < bytResult.Length; i++) { //16进制转换 strResult = strResult + bytResult[i].ToString("X"); } return strResult; } /**//// <summary> /// 方法三:直接使用HashPasswordForStoringInConfigFile生成 /// </summary> /// <param name="strSource">需要加密的明文</param> /// <returns>返回32位加密结果</returns> public string Get_MD5_Method3(string strSource) { return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(strSource, "MD5"); }