zoukankan      html  css  js  c++  java
  • (14)C#ADO.NET 关于MD5加密的登录框

    首先来说为什么需要MD5,因为我们在很多网站注册的账号和密码都是一样的,例如我们在新浪、网易、人人上面都用同一个用户名和密码加密。那么如果某一天这三个网站的某个密码泄露了,那么其他另外两个网站的账户也一起泄露了。这是一种很危险的行为。所以为了防止这种行为的发生,我们需要利用MD5加密。

    MD5其实就是一个不可逆的哈希函数,可以把我们简单的密码加密成一连串很负责的字符串(基本上是唯一,但不一定唯一)。加密过后,即使某一个网站的密码泄露,那么攻击者也不会知道我们真实的密码是什么。所以也就无从登录我们其他网站门户的账户了。起到了很大的防范作用。

    注:你的初始密码越复杂,MD5越难比对,这就是为什么“博客园”注册账号的时候需要我们的密码中必须含有特殊符号的原因了。

    首先给出MD5加密函数(不用记):

    public static string GetMD5(string sDataIn)
            {
                MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
                byte[] bytValue, bytHash;
                bytValue = System.Text.Encoding.UTF8.GetBytes(sDataIn);
                bytHash = md5.ComputeHash(bytValue);
                md5.Clear();
                string sTemp = "";
                for (int i = 0; i < bytHash.Length; i++)
                {
                    sTemp += bytHash[i].ToString("X").PadLeft(2, '0');
                }
                return sTemp.ToLower();
            }

    这上面的函数,传入的是一个普通的字符串,也就是我们的密码,返回值是该字符串加密过后的MD5值。使用起来非常简单。

    基于这个MD5方法,我们在注册时候存入的密码也必须是MD5格式的。

    然后我们在登录框登陆的时候,也把用户在登录框输入的密码转换成MD5值,从而和数据库中的MD5值进行比较,如果一致,那么就登陆成功,如果不一致就登录失败。

    另注:MD5加盐:

        这是一种可以提高密码安全性的方法,也就是如果我们怕用户自己输入的密码过于简单,“123”,“123456”这种。很可能会被别人已经做好的MD5常用比对库中立马被比对出来。所以我们可以在用户所输入的密码上加上系统自带的一些特殊字符,在登录的时候也加上这些特殊字符。这样大大加大了比对难度。提高了密码的安全性。

       此方法也比较简单,大家都可以试着实现一下。

  • 相关阅读:
    【bzoj2724】[Violet 6]蒲公英 分块+STL-vector
    【bzoj4026】dC Loves Number Theory 可持久化线段树
    【bzoj3744】Gty的妹子序列 分块+树状数组+主席树
    【bzoj3166】[Heoi2013]Alo 可持久化Trie树+STL-set
    【bzoj3060】[Poi2012]Tour de Byteotia 并查集
    【bzoj3510】首都 LCT维护子树信息(+启发式合并)
    【bzoj4530】[Bjoi2014]大融合 LCT维护子树信息
    【bzoj3261】最大异或和 可持久化Trie树
    【bzoj2081】[Poi2010]Beads Hash
    【bzoj4260】Codechef REBXOR Trie树
  • 原文地址:https://www.cnblogs.com/kaolalovemiaomiao/p/4778863.html
Copyright © 2011-2022 走看看