【问题标题】:Getting the hashed password from ASP.NET Membership Provider从 ASP.NET Membership Provider 获取散列密码
【发布时间】:2012-11-13 15:17:59
【问题描述】:

MembershipProvider(或 Membership 实例)上是否有任何方法可以用来获取散列密码本身?我不是要恢复,我不是要找到实际密码,我只需要散列字符串。

另外,当我使用它时,我能否获得用于创建该哈希的确切算法名称(如 SHA1 或 MD5)?

【问题讨论】:

    标签: passwords asp.net-membership membership-provider


    【解决方案1】:

    不,我找不到任何返回 HashedPassword 的方法。即使你得到了HashedPassword,你仍然需要salt。

    默认哈希算法是 salted base64 SHA1

    public string EncodePassword(string pass, string saltBase64) 
    { 
       byte[] bytes = Encoding.Unicode.GetBytes(pass); 
       byte[] src = Convert.FromBase64String(saltBase64); 
       byte[] dst = new byte[src.Length + bytes.Length]; 
       Buffer.BlockCopy(src, 0, dst, 0, src.Length); 
       Buffer.BlockCopy(bytes, 0, dst, src.Length, bytes.Length); 
       HashAlgorithm algorithm = HashAlgorithm.Create("SHA1"); 
       byte[] inArray = algorithm.ComputeHash(dst); 
       return Convert.ToBase64String(inArray); 
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-21
      • 1970-01-01
      • 2011-09-06
      相关资源
      最近更新 更多