|
- public string CalculateMD5Hash(string input)
- {
- //MD5 Encode但不轉Base64 String
- // MSSQL 使用
- // select SUBSTRING(sys.fn_sqlvarbasetostr(HASHBYTES('MD5','加密字串')),3,32)
- // 可得同樣結果
- // step 1, calculate MD5 hash from input
- MD5 md5 = System.Security.Cryptography.MD5.Create();
- byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(input);
- byte[] hash = md5.ComputeHash(inputBytes);
- // step 2, convert byte array to hex string
- StringBuilder sb = new StringBuilder();
- for (int i = 0; i < hash.Length; i++)
- {
- sb.Append(hash[i].ToString("x2"));
- }
- return sb.ToString();
- }
複製代碼- 以上範例是用ASCII方式進行編碼,如果要修改為Unicode,則要改為System.Text.Encoding.Unicode.GetBytes,相對的MSSQL的加密字串前面也要加N Ex: N'加密字串'。
- 如果要將產生的MD5改為大寫輸出,則要修改 sb.Append(hash[i ].ToString("x2")) 中的 x2,將之改為 X2,就會變大寫。
Reference:
C# - How do I calculate a MD5 hash from a string?
http://blogs.msdn.com/b/csharpfa ... a-string_3f00_.aspx |
|