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位的