标签:pac .com 两种 encode pen bytes ++ rem encoding
MD5 加密后的位数一般为两种,16 位与 32 位。16 位实际上是从 32 位字符串中,取中间的第 9 位到第 24 位的部分
using System;
using System.Security.Cryptography;
using System.Text;
namespace _04MD5加密
{
internal class Program
{
private static void Main(string[] args)
{
string tStr = MD5Encrypt("MD5加密处理");
Console.WriteLine(tStr);
Console.ReadKey();
}
/// <summary>
/// MD5加密
/// </summary>
/// <param name="input">需要加密的字符串</param>
/// <returns></returns>
public static string MD5Encrypt(string input)
{
return MD5Encrypt(input, new UTF8Encoding());
}
/// <summary>
/// md5加密16|32位
/// </summary>
/// <param name="input">需要加密的字符串</param>
/// <param name="length">加密位数,可选16位与32位</param>
/// <returns></returns>
public static string MD5Encrypt(string input, int length)
{
string res = MD5Encrypt(input, new UTF8Encoding());
if (length == 16)
{
res = res.Substring(8, 16);
}
return res;
}
/// <summary>
/// MD5加密
/// </summary>
/// <param name="input">需要加密的字符串</param>
/// <param name="encode">字符的编码</param>
/// <returns></returns>
public static string MD5Encrypt(string input, Encoding encode)
{
if (string.IsNullOrEmpty(input))
{
return null;
}
MD5CryptoServiceProvider md5Hasher = new MD5CryptoServiceProvider();
byte[] data = md5Hasher.ComputeHash(encode.GetBytes(input));
StringBuilder sBuilder = new StringBuilder();
for (int i = 0; i < data.Length; i++)
{
sBuilder.Append(data[i].ToString("x2"));
}
return sBuilder.ToString();
}
}
}
上述代码执行后得到的结果如下:

标签:pac .com 两种 encode pen bytes ++ rem encoding
原文地址:https://www.cnblogs.com/mrmocha/p/10203253.html