版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ohdajing/article/details/80434466
二次开发时,要加一个忘记密码的功能,后台写了修改密码的方法,数据库执行也修改成功,但是登录一直提示密码错误。
之所以提示密码错误是因为MD5 是不可逆的加密方法,要重置密码就把新密码再加密一次, 覆盖原先的密码。
//MD5加密
public static string Md5Encrypt(string sourceData)
{
string str3;
Encoding encoding = new UTF8Encoding();
byte[] bytes = encoding.GetBytes("12345678");
byte[] rgbIV = new byte[] { 1, 2, 3, 4, 5, 6, 8, 7 };
string s = sourceData;
try
{
ICryptoTransform transform = new DESCryptoServiceProvider().CreateEncryptor(bytes, rgbIV);
byte[] inputBuffer = encoding.GetBytes(s);
str3 = Convert.ToBase64String(transform.TransformFinalBlock(inputBuffer, 0, inputBuffer.Length));
}
catch
{
throw;
}
return str3;
}
然后在执行修改密码方法的时候调用就好了
a.Updatepwd(Phone, HiCryptographer.Md5Encrypt(password));