我负责在我们的 .Net MVC 4 Web 应用程序中进行身份验证,并且在密码散列、存储和身份验证方面遇到了麻烦。
目前的计划是使用 2 个 Salts、1 个动态(每个用户)和 1 个静态(Web 应用常量)和一个强大的哈希函数。
给定一个包含用户名和密码的简单用户表:
- 我是否将每个用户的盐存储在用户表的列中?
我担心的是,这样做,我将不得不仅使用用户名从 Web 应用程序内存中的数据库中获取用户。是否存在某种可能存在问题的攻击?理想情况下,我希望这是一个一步/一个 SQL 请求身份验证。
我是不是太担心了?是否有“每用户”盐的替代方案,我仍然可以进行一步验证?