我用sha1加密怎么加密出来的不一样?

解决方案 »

  1.   

    看你web.config内配置的何种加密算法
      

  2.   

    System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "sha1");
    =======
    我是这么写的,一样啊
      

  3.   

    internal string EncodePassword(string pass, int passwordFormat, string salt)
            {
                if (passwordFormat == 0) // MembershipPasswordFormat.Clear
                    return pass;            byte[] bIn = Encoding.Unicode.GetBytes(pass);
                byte[] bSalt = Convert.FromBase64String(salt);
                byte[] bAll = new byte[bSalt.Length + bIn.Length];
                byte[] bRet = null;            Buffer.BlockCopy(bSalt, 0, bAll, 0, bSalt.Length);
                Buffer.BlockCopy(bIn, 0, bAll, bSalt.Length, bIn.Length);
                if (passwordFormat == 1)
                { // MembershipPasswordFormat.Hashed
                    HashAlgorithm s = HashAlgorithm.Create(Membership.HashAlgorithmType);
                    bRet = s.ComputeHash(bAll);
                }
                else
                {
                    bRet = EncryptPassword(bAll);
                }            return Convert.ToBase64String(bRet);
            }
      

  4.   

    pass:密码
    passwordFormat:webconfig里边的加密方式
    salt:用于生成密码的代码如下       public static string GenerateSalt()
            {
                byte[] buf = new byte[16];
                (new RNGCryptoServiceProvider()).GetBytes(buf);
                return Convert.ToBase64String(buf);
            }
      

  5.   

    什么方法?你不是要给密码加密吗?这个就是membership的加密方法
      

  6.   

    Membership没有这个方法,MembershipProvider就有一个是受保护的方法,调用不了
      

  7.   

    这个是自己写的,
    EncryptPassword是MembershipProvider的方法。
    继承MembershipProvider之后可以使用
      

  8.   

    你去找个别人写好的sql以外版本的MembershipProvider代码,看看就知道啦。
    我手里有个oracle的,但是错误一堆。。