2012-11-13 72 views
1

MembershipProvider(或Membership實例)上是否有任何方法可用於獲取哈希密碼本身?我沒有嘗試恢復,我沒有試圖找到實際的密碼,我只需要散列的字符串。從ASP.NET Membership Provider獲取散列密碼

此外,雖然我在它,我可以得到確切的算法的名稱(如SHA1或MD5)用於創建該哈希?

回答

0

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

默認哈希算法是鹽基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); 
}