存储密码's散列的最安全的地方
本文关键字:安全 密码 存储 | 更新日期: 2023-09-27 18:08:51
我知道我需要将其存储为哈希,然后将值一起比较,但是我应该将此哈希发送到哪里以便稍后进行比较?
参见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中获取哈希函数实现。密码学