MD5 加密解密字符串

时间:2021-04-04 20:25:23
方法1:
using System.Text;
using System.Security.Cryptography; public string Hash(string toHash)
{
MD5CryptoServiceProvider crypto = new MD5CryptoServiceProvider();
byte[] bytes = Encoding.UTF7.GetBytes(toHash);
bytes = crypto.ComputeHash(bytes);
StringBuilder sb = new StringBuilder();
foreach (byte num in bytes)
{
sb.AppendFormat("{0:x2}", num);
}
return sb.ToString(); //32位
return sb.ToString().Substring(,); //16位
} 方法2: 16位 public string GetMd5(string str)
{
System.Security.Cryptography.MD5CryptoServiceProvider md5=new MD5CryptoServiceProvider();
string a=BitConverter.ToString(md5.ComputeHash(System.Text.Encoding.UTF8.GetBytes(str)),,);
a=a.Replace("-","");
return a;
} 32位 public string GetMd5(string str)
{
System.Security.Cryptography.MD5CryptoServiceProvider md5=new MD5CryptoServiceProvider();
string a=BitConverter.ToString(md5.ComputeHash(System.Text.Encoding.UTF8.GetBytes(str)));
a=a.Replace("-","");
return a;
}
Winform:  

    public static string StringToMD5Hash(string inputString)
{
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider(); byte[] encryptedBytes = md5.ComputeHash(Encoding.ASCII.GetBytes(inputString)); StringBuilder sb = new StringBuilder(); for (int i = ; i < encryptedBytes.Length; i++) {
sb.AppendFormat("{0:x2}", encryptedBytes[i]);
} return sb.ToString();
} Webform: public static string md5(string pwd)
{
string md5pwd = FormsAuthentication.HashPasswordForStoringInConfigFile(pwd, "MD5"); return md5pwd;
}
/**
* 验证输入的密码是否正确
     * md5不能解密,验证一个字符串是不是跟另一个加密之前的字符串相等,只能把这个字符串使用相同的加密,再比较密文
* @param password 加密后的密码
* @param inputString 输入的字符串
* @return 验证结果,TRUE:正确 FALSE:错误
*/
public static boolean validatePassword(String password, String inputString)
     {
if(password.equals(encodeByMD5(inputString)))
       {
return true;
}
  
       else
       {
return false;
}
}