在大学期间,做项目从来不管密码是不是明文存储,如今到了公司,肯定就不一样了。至于CSDN居然用明文存储密码,显然是脑残行为。所以现在做系统,密码全部加密,好在.NET中已经提供了现成的MD5加密算法,调用一个简单的函数就搞定了。
1、引用命名空间
using System.Security.Authentication;
2、编写加密函数,这里就给出一个例子,估计还有很多种方法,这些方法无非是替换什么字符串罢了,本质都差不多,一个显然就够了
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;
}
在我看来,登录的时候流程应该如下:
1、判断用户是否输入验证码
2、判断用户是否输入用户名和密码
3、对用户的密码进行MD5加密
4、拿用户的用户名和加密后的字符串去数据库中查询,看是否有结果
5、有结果成功否则就失败
在网上看到MD5加密后无法轻易解密,好在同一个字符串无论多少次用MD5加密得到的结果都一样。所以在创建用户的时候,就要对密码进行MD5加密,这样数据库中保存的全是MD5加密后的字符串,这样才可以进行匹配。管理员权限再高也不知道用户的密码,这才能真正确保安全。话说回来,这年头,管理员的素质真是不敢恭维。