C#中怎样对输入的用户密码进行MD5加密,再与数据库中的经过加密的密码进行匹配? 15
关于C#中及ASP.NET、涉及到数据库中密码的安全性,这种问题不容小视,万一被别人获得数据库信息,就麻烦了!在C#中如何把用户输入的密码进行MD5加密,然后再与数据库中...
关于C#中及ASP.NET、涉及到数据库中密码的安全性,这种问题不容小视,万一被别人获得数据库信息,就麻烦了!
在C#中如何把用户输入的密码进行MD5加密,然后再与数据库中经过MD5加密过的密码进行匹配,这涉及到数据库中密码的安全。 展开
在C#中如何把用户输入的密码进行MD5加密,然后再与数据库中经过MD5加密过的密码进行匹配,这涉及到数据库中密码的安全。 展开
展开全部
如果数据库中保存的密码是经过加密的,并且这种加密是不可逆的,那么就可以保证数据库信息被人获取时密码不会泄漏了。
所以,当用户注册的时候,你在C# 程序中把用户输入的密码转换成MD5加密后的格式,保存到数据库中。
当需要再次验证用户输入的密码是否正确时,你先在C#程序中把用户输入的密码转换成MD5加密后的格式,再和数据库中读出来的比较。
在C#中,这样转换字符串:
string oldPsw="123";
string newPsw= System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(oldPsw, "MD5");
得到的newPsw即是oldPsw经过MD5算法加密后的形式。
所以,当用户注册的时候,你在C# 程序中把用户输入的密码转换成MD5加密后的格式,保存到数据库中。
当需要再次验证用户输入的密码是否正确时,你先在C#程序中把用户输入的密码转换成MD5加密后的格式,再和数据库中读出来的比较。
在C#中,这样转换字符串:
string oldPsw="123";
string newPsw= System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(oldPsw, "MD5");
得到的newPsw即是oldPsw经过MD5算法加密后的形式。
展开全部
先using System.Security.Cryptography;
/// <summary>
/// 对用户输入的密码进行加密
/// </summary>
public class PassWordToMD5
{
/// <summary>
/// MD5 加密方法
/// </summary>
/// <param name="strPwd">加密前由用户输入的密码</param>
/// <returns>加密后得到的字符串</returns>
public static 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 = String.Empty;
for (int i = 0; i < md5data.Length-1; i++)
{
str += md5data[i].ToString("x").PadLeft(2,'0');
}
return str;
}
}
Thank you!
补充:至于你说的数据库密码安全问题,大可放心,MD5加密是不可逆的,即使你知道加密后的密码,也不可能推出加密前的密码,除非知道加密前的密码,一般破解MD5的网站,他们的数据中心都记录了很多密码对(原始密码+加密后密码),根据这个破解的!
/// <summary>
/// 对用户输入的密码进行加密
/// </summary>
public class PassWordToMD5
{
/// <summary>
/// MD5 加密方法
/// </summary>
/// <param name="strPwd">加密前由用户输入的密码</param>
/// <returns>加密后得到的字符串</returns>
public static 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 = String.Empty;
for (int i = 0; i < md5data.Length-1; i++)
{
str += md5data[i].ToString("x").PadLeft(2,'0');
}
return str;
}
}
Thank you!
补充:至于你说的数据库密码安全问题,大可放心,MD5加密是不可逆的,即使你知道加密后的密码,也不可能推出加密前的密码,除非知道加密前的密码,一般破解MD5的网站,他们的数据中心都记录了很多密码对(原始密码+加密后密码),根据这个破解的!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
将取得的秘密 用md5进行加密, .net中自带的有这个System.Security.Cryptography.MD5 这个方法, 将数据加密之后再用.net中的管道程序和数据库中的md5值进行比较就ok了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public string MD5Code(string Str)
{
return FormsAuthentication.HashPasswordForStoringInConfigFile(Str, "MD5").ToLower();
}
先用着!
{
return FormsAuthentication.HashPasswordForStoringInConfigFile(Str, "MD5").ToLower();
}
先用着!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询