解决方案 »

  1.   

    这相当于hash(salt + pass),结果取决于salt、pass和使用的hash算法。需要看下 Membership.HashAlgorithmType 的值,这是可以由配置文件影响的。而本来salt的目的就是同样的pass要生成出不同的结果,这个salt应该是随机的,和生成的hash值都保存到数据库。如果你给的pass和salt是固定的,而产生的值还会变化,那说明hash算法是使用了hmac类的算法,key没有给就是随机的。这段代码很像是.net自带的SqlMembershipProvider的简化版本,不过自己写的话最好把hash算法固定下来,不要用Membership.HashAlgorithmType这种方式。也可以用我在 http://bbs.csdn.net/topics/390943887#post-398608856 写的代码。
      

  2.   

            public static string GetHash(string pwd)
            {
                string strHash = String.Empty;
                MD5 md5 = MD5.Create();
                byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(pwd.Trim()));            for (int i = 0; i < s.Length; i++)
                {
                    strHash = strHash + s[i].ToString("X2");
                }
                return strHash;
            }