当前位置 : 主页 > 网络编程 > net编程 >

最新C# MD5 32位加密和16位加密最全ToString(“X2“)和ToString(“X“)详解含义及使用

来源:互联网 收集:自由互联 发布时间:2023-09-07
/// 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】
网友评论