取的字符串的 MD5(SHA1) 数值的三种方法:
1. 使用 System.Web.Security 命名空间
FormsAuthentication.HashPasswordForStoringInConfigFile 方法
2. 使用 System.Security.Cryptography 命名空间
MD5CryptoServiceProvider 类别、 SHA1CryptoServiceProvider 类别
3. 使用 SQL Server 2005 的内建函数
hashbytes
取得 MD5 范例的程序代码:
1: private void button1_Click(object sender, EventArgs e) 2: { 3: string source = "Test String"; 4: 5: // Method 1: FormsAuthentication.HashPasswordForStoringInConfigFile 6: string m1 = FormsAuthentication.HashPasswordForStoringInConfigFile(source, "MD5").ToLower(); 7: string m2 = GetMD5(source); 8: string m3 = MD5Sql(source); 9: 10: MessageBox.Show(string.Format("source: {0}, m1:{1}, m22:{2}, m3:{3}", source, m1, m2, m3)); 11: } 12: 13: // Method 2: MD5CryptoServiceProvider 14: private string GetMD5(string source) 15: { 16: MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider(); 17: byte[] byt&#118alue = Encoding.UTF8.GetBytes(source); 18: byte[] bytHash = md5.ComputeHash(byt&#118alue); 19: md5.Clear(); 20: 21: StringBuilder sb = new StringBuilder(); 22: for (int i = 0; i < bytHash.Length; i++) 23: { 24: sb.Append(bytHash[i].ToString("X").PadLeft(2, '0')); 25: } 26: 27: return sb.ToString().ToLower(); 28: } 29: 30: // Method 3: SQL Server 2005 MD5 31: public string MD5Sql(string source) 32: { 33: string strConn = @"Connectionstring"; 34: SqlConnection conn = new SqlConnection(strConn); 35: SqlCommand cmd = new SqlCommand("select master.sys.fn_VarBinToHexStr(hashbytes('MD5', @sDataIn))", conn); 36: cmd.Parameters.Add("@sDataIn", SqlDbType.VarChar); 37: cmd.Parameters["@sDataIn"].&#118alue = source; 38: 39: conn.Open(); 40: string s = cmd.ExecuteScalar().ToString().Substring(2).ToLower(); 41: conn.Close(); 42: 43: return s;
|