【发布时间】:2015-05-22 11:51:12
【问题描述】:
我发现默认散列是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);
}
我需要盐……所以我猜它是从某个地方获取盐的,比如 web config 之类的文件,或者它计算盐……我不知道
如何获取ASP.NET membership使用的哈希算法的salt?
【问题讨论】:
-
可能基于机器密钥 - 您使用的是哪个 asp.net 会员提供商?
-
我查看了msdn.microsoft.com/en-us/library/… 并且成员资格应该在 DLL System.Web.ApplicationServices.dll 中我使用的是这个 DLL 的 4.0.0.0 版本,因为我使用的是 .NET 4.5 和 ASP.Net MVC 4 @DanielA.White
-
那家伙很抽象——具体是哪一个?
-
没有@DanielA.White。 Salt 对于每个密码都是唯一且随机的。
标签: c# asp.net authentication hash asp.net-membership