/******************************************************************************* * Copyright © 2016 HT.Cloud.Framework 版权所有 * Author: HT.Cloud * Description: WaterCloud快速开发平台 * Website: *********************************************************************************/ using System; using System.Security.Cryptography; using System.Text; namespace HT.Cloud.Code { /// /// MD5加密 /// public class Md5 { /// /// MD5加密 /// /// 加密字符 /// 加密位数16/32 /// public static string md5(string str, int code) { string strEncrypt = string.Empty; if (code == 16) { var md5 = System.Security.Cryptography.MD5.Create(); var data = md5.ComputeHash(Encoding.UTF8.GetBytes(str)); StringBuilder builder = new StringBuilder(); // 循环遍历哈希数据的每一个字节并格式化为十六进制字符串 for (int i = 0; i < data.Length; i++) { builder.Append(data[i].ToString("X2")); } strEncrypt = builder.ToString().Substring(8, 16); } if (code == 32) { var md5 = System.Security.Cryptography.MD5.Create(); var data = md5.ComputeHash(Encoding.UTF8.GetBytes(str)); StringBuilder builder = new StringBuilder(); // 循环遍历哈希数据的每一个字节并格式化为十六进制字符串 for (int i = 0; i < data.Length; i++) { builder.Append(data[i].ToString("X2")); } strEncrypt = builder.ToString(); } return strEncrypt; } public static string MD5(string str) { MD5 md5 = System.Security.Cryptography.MD5.Create(); byte[] data = System.Text.Encoding.Default.GetBytes(str); byte[] md5data = md5.ComputeHash(data); md5.Clear(); str = ""; for (int i = 0; i < md5data.Length; i++) { str += md5data[i].ToString("x").PadLeft(2, '0'); } return str; } public static string MD5Lower16(string str) { return MD5(str).ToLower().Substring(8, 16); } public static string MD5Lower32(string str) { return MD5(str).ToLower(); ; } /// /// 32位小写 /// /// public static string SHA1(string s) { SHA1 sha1 = System.Security.Cryptography.SHA1.Create(); byte[] hash = sha1.ComputeHash(Encoding.UTF8.GetBytes(s)); string shaStr = BitConverter.ToString(hash); shaStr = shaStr.Replace("-", ""); shaStr = shaStr.ToLower(); return s.ToLower(); } } }