/// summary /// MD5加密 /// /summary /// param name="str"加密字符/param /// param name="code"加密位数16/32;默认32/param /// returns/returns public static string MD5Encrypt(string ConvertString, int code=32) { string strEncrypt
/// <summary>
/// MD5加密
/// </summary>
/// <param name="str">加密字符</param>
/// <param name="code">加密位数16/32;默认32</param>
/// <returns></returns>
public static string MD5Encrypt(string ConvertString, int code=32)
{
string strEncrypt = string.Empty;
if (code == 16)
{
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
string t2 = BitConverter.ToString(md5.ComputeHash(UTF8Encoding.Default.GetBytes(ConvertString)), 4, 8);
t2 = t2.Replace("-", "");
strEncrypt = t2.ToUpper(); //所有字符转为大写
}
if (code == 32)
{
string pwd = "";
string temp = "";
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
// 加密后是一个字节类型的数组,这里要注意编码UTF8/Unicode等的选择
byte[] bs = md5.ComputeHash(Encoding.UTF8.GetBytes(ConvertString));
// 通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得
var sb = new StringBuilder();
foreach (byte b in bs)
{
// 将得到的字符串使用十六进制类型格式。格式后的字符是小写的字母,如果使用大写(X)则格式后的字符是大写字符
sb.Append(b.ToString("X2"));
}
strEncrypt= sb.ToString().ToUpper(); //所有字符转为大写
}
return strEncrypt;
}
调用
Console.WriteLine("32加密"+JimiApi.MD5Encrypt("123"));
Console.WriteLine("16加密"+JimiApi.MD5Encrypt("123",16));
结果
32加密202CB962AC59075B964B07152D234B70
16加密AC59075B964B0715
参考:
https://blog.51cto.com/myitworld/498829
你可能还需要:
最全ToString(“X2“)和ToString(“X“)详解含义及使用
【本文转自:韩国服务器 https://www.68idc.cn 复制请保留原URL】