我目前正在构建几个ASP.NET MVC 2站点,我想知道我的选项是什么用于保存密码。在我的PHP工作中,我通常只获取用户注册时的时间戳,然后将其附加到密码字符串的末尾,然后再使用SHA1来散列整个事物。我的直觉是这种方法可能还不够。
无论如何,我对ASP.NET的用户管理都很陌生,所以我认为从一开始就开始使用最佳实践符合我的最佳利益。我知道ASP.NET Web表单有内置的用户管理,但我不确定MVC。
答案 0 :(得分:4)
SALT的唯一要点是防止彩虹攻击,其中多个用户的密码具有相同的哈希值,因此成功反转一个密码意味着您也知道它是具有相同哈希的其他所有人的密码。即使是一位数的盐也会阻止这种情况,因为如果两个拥有相同密码的用户使用不同的盐,则会有不同的哈希值。
只要盐不会发生变化,并且对每个用户来说都是不同的,任何价值都会很好。注册时间戳,如果您不更新该字段(这将使其密码哈希无效并阻止其登录)是一个不错的选择。