项目开发过程中需要用到MD5加密,最开始的使用使用加密方法:
public static string GetMD5(string str)
{
byte[] b = System.Text.Encoding.Default.GetBytes(str);
b = new System.Security.Cryptography.MD5CryptoServiceProvider().ComputeHash(b);
string ret = "";
for (int i = 0; i < b.Length; i++)
{
ret += b[i].ToString("x").PadLeft(2, '0');
}
return ret;
}
在一开始的测试过程中没有出现问题,后来传入的参数包含中文后,就出现问题了,
经过排查返现Encoding.Default使用的是默认的编码:gb2312
所以改变加密方式:
public static string UserMd5(string str)
{
string cl = str;
string pwd = "";
MD5 md5 = MD5.Create();//实例化一个md5对像
// 加密后是一个字节类型的