ASP.NET下实现密码MD5加密

来源:互联网 发布:想应聘淘宝代卖怎么弄 编辑:程序博客网 时间:2024/05/19 16:33

在大学期间,做项目从来不管密码是不是明文存储,如今到了公司,肯定就不一样了。至于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;     }  


3、调用这个函数即可,传个用户输入的密码,调用此函数,获取函数返回值,一个string而已




在我看来,登录的时候流程应该如下:

1、判断用户是否输入验证码

2、判断用户是否输入用户名和密码

3、对用户的密码进行MD5加密

4、拿用户的用户名和加密后的字符串去数据库中查询,看是否有结果

5、有结果成功否则就失败

在网上看到MD5加密后无法轻易解密,好在同一个字符串无论多少次用MD5加密得到的结果都一样。所以在创建用户的时候,就要对密码进行MD5加密,这样数据库中保存的全是MD5加密后的字符串,这样才可以进行匹配。管理员权限再高也不知道用户的密码,这才能真正确保安全。话说回来,这年头,管理员的素质真是不敢恭维。