存储密码's散列的最安全的地方

本文关键字:安全 密码 存储 | 更新日期: 2023-09-27 18:08:51

我知道我需要将其存储为哈希,然后将值一起比较,但是我应该将此哈希发送到哪里以便稍后进行比较?

存储密码's散列的最安全的地方

参见ProtectedData类。它使用DPAPI,实际上适合提供中等级别的安全性。与IsolatedStorage结合使用,对于大多数用途来说,它已经足够了。

这有帮助吗?

http://msdn.microsoft.com/en-us/library/system.security.securestring.aspx

存储在哪里并不重要。答案是:只要对您的应用程序有意义。

这可能是您已经使用的任何其他存储机制。考虑把它放在其他用户相关信息所在的位置:

  • 注册表(你没有提到这是WinForms还是其他)
  • 本地存储(Win Phone)
  • 调用web服务

建议把它放在用户不容易拿到的地方。是的,它是一个散列,但是当人们开始摆弄这个值时,就会出现问题。尽量把它放在视线之外。

如果您可以集成现有的AuthN/AuthZ机制,请使用它而不是自己创建。

OAuth就是这样一个机制。

如果你必须自己滚动,那么:

  • 使用数据库存储数据
  • 尽你所能保护数据库(让安全公司/专家或DBA知道他们在做什么来做这件事)
  • 接受密码为SecureString
  • 使用盐
  • 在服务器内存中对密码进行散列,并将其与之前存储在数据库中的散列进行比较
  • 使用没有已知漏洞的单向散列函数,例如SHA256
  • 从System中获取哈希函数实现。密码学