我正在尝试在ASP.NET MVC3
中创建自定义成员资格系统。
我知道有很多免费和开源的提供商,但我这样做是为了了解更多。我的问题是关于加密密码。
您建议我使用哪种算法:SHA1
,SHA256
,MD5
,BCrypt
或其他什么?另外,您建议以哪种方式创建密码盐?
答案 0 :(得分:1)
这些算法中的大多数都是散列算法,它们不加密它们创建散列(校验和),通常这是存储密码的最佳方式,除非你有一个很好的理由想要一种方法来恢复密码(和我不认为有很多原因)。
我小心翼翼地使用sha256。关于salt,随机的6个或更多字符串就足够了。但盐可以是任何东西,它取决于你的想象力如何产生它。
答案 1 :(得分:1)
BCrypt如果您需要非常强大的哈希值。就生成盐而言,您可以使用RNGCryptoServiceProvider类。您可以结帐an article。只需用BCrypt替换那里使用的SHA1算法。