我发现默认散列是SHA1
,但是它们也是盐,你可以看一下:
public string EncodePassword(string pass, string salt)
{
byte[] bytes = Encoding.Unicode.GetBytes(pass);
byte[] src = Encoding.Unicode.GetBytes(salt);
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);
}
我需要盐..所以我猜它从某个地方获取盐,一些文件像网络配置或它计算盐..我不知道
如何获得salt
使用的哈希算法的ASP.NET membership
?
答案 0 :(得分:2)
您可以从aspnet_Membership表中读取每个密码的相应salt值。
来自会员提供商文档(https://msdn.microsoft.com/en-us/library/aa478949.aspx):
salt是由.NET Framework的RNGCryptoServiceProvider类生成的随机128位值。每个密码/密码答案对都使用此唯一值进行加盐,并且salt存储在aspnet_Membership表的PasswordSalt字段中。哈希密码和盐的结果存储在密码字段中。