c# - 使用 Linq To SQL 加盐和散列密码

标签 c# .net database linq-to-sql

我需要对一些密码进行加盐和哈希处理,以便我可以将它们安全地存储在数据库中。 关于如何最好地使用 Linq To SQL 执行此操作,您有什么建议或想法吗?

最佳答案

在这种情况下,LINQ to SQL 没有太多相关性。您可以使用任何您想要的机制,因为您不会在 SQL 中进行散列和加盐。

保存密码的步骤如下:

  1. 以明文形式接收密码以及用户 ID。
  2. 生成(并记住)盐。
  3. 将盐与密码文本结合起来,例如放在它前面或附加它。
  4. 使用哈希函数对结果文本进行哈希处理
  5. 将用户 ID、哈希和盐存储在您的数据库中。

验证密码的步骤如下:

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

关于c# - 使用 Linq To SQL 加盐和散列密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/582556/

相关文章:

c# - Visual C# - 可以记住用户输入的简单程序?

c# - 反序列化 JSON 会生成默认类

.net - 当我执行 paket push 时,我在 nuget paket 服务器中收到 400(错误请求)

php - mysql_data_seek 和 mysql_field_seek 之间的区别?

sql - 在 Oracle 上导出许多表

php - 如何在 MySQL 和 PHP 中过滤日期?

c# - 可空类型、DBNulls 和数据行的问题

c# - 无法将 TwoWay 模式设置为 x :Bind

c# - 将 Excel 宏转换为 C#?

c# - 防止先决条件请求重启,setup.exe设置项目bootstrapper