使用Linq To SQL进行Salting和Hashing密码

Jay*_*Jay 10 .net c# database linq-to-sql

我需要对一些密码进行salt和hash,以便我可以将它们安全地存储在数据库中.您对使用Linq To SQL如何做到这一点有什么建议或想法吗?

Voj*_*vic 25

在这种情况下,LINQ to SQL没有多大关系.您可以使用任何您想要的机制,因为您不会在SQL中进行散列和salting.

保存密码的步骤将遵循以下几行:

  1. 以明文形式接收密码以及用户ID.
  2. 生成(并记住)盐.
  3. 将salt与密码文本组合,例如将其添加或附加.
  4. 使用哈希函数对生成的文本进行哈希处理
  5. 将用户ID,散列和salt存储在数据库中.

验证密码的步骤将遵循以下几行:

  1. 以明文形式接收密码以及用户ID.
  2. 从DB中检索提供的用户ID的散列和salt.
  3. 将salt与提供的密码文本组合在一起.
  4. 使用哈希函数对生成的文本进行哈希处理.
  5. 将函数的散列与从DB检索的散列进行比较.
  6. 如果它们相等,则提供的密码是正确的.