哈希不适于在指定状态下使用。
错误代码public class MyMd5
{
private static MD5CryptoServiceProvider myMd5 = new MD5CryptoServiceProvider();
/// <summary>
/// MD5加密
/// </summary>
/// <param name="theText"></param>
/// <returns></returns>
public static string getMd5Hash(string theText)
{
MD5CryptoServiceProvider md5Hasher = myMd5;
byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(theText));
StringBuilder sBuilder = new StringBuilder();
for (int i = 0; i < data.Length; i++)
{
sBuilder.Append(data[i].ToString("x2"));
}
return sBuilder.ToString();
}
}
请问是不是代码有问题
错误代码public class MyMd5
{
private static MD5CryptoServiceProvider myMd5 = new MD5CryptoServiceProvider();
/// <summary>
/// MD5加密
/// </summary>
/// <param name="theText"></param>
/// <returns></returns>
public static string getMd5Hash(string theText)
{
MD5CryptoServiceProvider md5Hasher = myMd5;
byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(theText));
StringBuilder sBuilder = new StringBuilder();
for (int i = 0; i < data.Length; i++)
{
sBuilder.Append(data[i].ToString("x2"));
}
return sBuilder.ToString();
}
}
请问是不是代码有问题
#region MD5加密
/// <summary>
/// MD5加密
/// </summary>
/// <param name="str">明码</param>
/// <param name="code">加密后密码长度</param>
/// <returns></returns>
[WebMethod]
public string Getmd5(string str, int code)
{
if (code == 16) //16位MD5加密(取32位加密的9~25字符)
{
return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").ToLower().Substring(8, 16);
} if (code == 32) //32位加密
{
return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "SHA1").ToLower();
} return "00000000000000000000000000000000";
} /// <summary>
/// MD5加密
/// </summary>
/// <param name="strPwd">明码</param>
/// <returns></returns>
public string MD5(string strPwd)
{
MD5 md5 = new MD5CryptoServiceProvider();
byte[] data = System.Text.Encoding.Default.GetBytes(strPwd);
byte[] md5data = md5.ComputeHash(data);
md5.Clear();
string str = "";
for (int i = 0; i < md5data.Length; i++)
{
str += md5data[i].ToString("x").PadLeft(2, '0');
}
return str;
}
#endregion
{
MD5CryptoServiceProvider md5Hasher = new MD5CryptoServiceProvider() ;
byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(theText));
StringBuilder sBuilder = new StringBuilder();
for (int i = 0; i < data.Length; i++)
{
sBuilder.Append(data[i].ToString("x2"));
}
return sBuilder.ToString();
}
#region Md5加密,生成16位或32位,生成的密文都是大写
public string Md5To16(string str)
{
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
string t2 = BitConverter.ToString(md5.ComputeHash(UTF8Encoding.Default.GetBytes(str)), 4, 8);
t2 = t2.Replace("-", "");
return t2;
} //// <summary>
/// MD5 32位加密
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public string Md5To32(string str)
{
string pwd = "";
MD5 md5 = MD5.Create();
byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(str));
for (int i = 0; i < s.Length; i++)
{
pwd = pwd + s[i].ToString("X");
}
return pwd;
}
#endregion