MD5加密分为32位和16位,其实16位就是把32位的计算出来后截取了中间的16位而已,没有其他特殊的计算方法
加密方法的使用
/// <summary>
/// MD5加密
/// </summary>
/// <param name="str">要加密的字符串</param>
/// <param name="type">32为32位加密,16为16位加密 默认32位加密</param>
/// <returns></returns>
public static string GetMD5(string str, MD5Type type = MD5Type.Bits_32)
{
string md5Pwd = string.Empty;
//使用加密服务提供程序
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
//将指定的字节子数组的每个元素的数值转换为它的等效十六进制字符串表示形式。
if (type == MD5Type.Bits_32)
{
md5Pwd = BitConverter.ToString(md5.ComputeHash(UTF8Encoding.Default.GetBytes(str)));
}
else
{
md5Pwd = BitConverter.ToString(md5.ComputeHash(UTF8Encoding.Default.GetBytes(str)), 4, 8);
}
md5Pwd = md5Pwd.Replace("-", "");
return md5Pwd;
}
枚举类型:
public enum MD5Type
{
Bits_32 = 32,
Bits_16 = 16
}
调用方法:
GetMD5("suiersuier"); //返回32位的
GetMD5("suiersuier", MD5Type.Bits_16); //返回16位的