我想知道在MVC 5和ASP.NET Identity Framework附带的UserManager中默认实现的Password Hasher是否足够安全?如果是这样,如果你可以向我解释它是如何工作的?
IPasswordHasher界面如下所示:
public interface IPasswordHasher
{
    string HashPassword(string password);
    PasswordVerificationResult VerifyHashedPassword(string hashedPassword, 
                                                       string providedPassword);
}
正如你所看到的,它不需要盐,但在这个帖子中提到:" Asp.net身份密码哈希 ",它确实在幕后加盐.所以我想知道它是如何做到的?这盐来自何处?
我担心的是盐是静态的,使它非常不安全.
我已经读过,在对密码进行散列时,许多程序员建议使用BCrypt算法.
我正在使用C#进行编程,并且想知道是否有人知道BCrypt的良好实现?我找到了这个页面,但我真的不知道它是不是假的.
选择密码哈希方案时应该注意什么?BCrypt是一个"好"的实现吗?
有谁知道bcrypt的一个很好的实现,我知道这个问题之前已被问过,但它得到的答案很少.我有点不确定只是选择在谷歌中出现的实现,并且我认为我最好在System.Security.Cryptography命名空间中使用sha256,至少我知道它是支持的!你有什么想法?
什么是密码散列的理想bcrypt工作因素.
如果我使用因子10,在我的笔记本电脑上散列密码需要大约1秒.如果我们最终得到一个非常繁忙的网站,那么只需检查一下人们的密码即可完成大量工作.
也许最好使用7的工作因子,将每个笔记本电脑登录的总密码哈希工作减少到大约0.01秒?
您如何决定暴力安全与运营成本之间的权衡?
我正在为一个应用程序编写一个注册表单,但仍然遇到了新的c#问题.
我希望加密/哈希密码到md5或sha-256,最好是sha-256.
有什么好例子吗?我希望它能够从"字符串密码"中获取信息; 然后散列它并存储在变量"string hPassword;"中.有任何想法吗?
我正在使用C#和BCrypt.Net来哈希我的密码.
例如:
string salt = BCrypt.Net.BCrypt.GenerateSalt(6);
var hashedPassword = BCrypt.Net.BCrypt.HashPassword("password", salt);
//This evaluates to True. How? I'm not telling it the salt anywhere, nor
//is it a member of a BCrypt instance because there IS NO BCRYPT INSTANCE.
Console.WriteLine(BCrypt.Net.BCrypt.Verify("password", hashedPassword));
Console.WriteLine(hashedPassword);
如果没有在任何地方保存盐,BCrypt如何用哈希验证密码.我唯一的想法是,它以某种方式在哈希的末尾附加盐.
这是正确的假设吗?