c# - 有关数据保护 API (DPAPI) 的信息

标签 c# asp.net-mvc security hash dpapi

我目前正在编写一个 c# mvc web 应用程序,其中从用户那里获取密码并将其存储在数据库 - sql server 中。我需要一种散列密码的方法。

建议使用数据保护 API (DPAPI)。我不熟悉它,从互联网上的研究来看,它的信息很少。

任何人都可以指出方向以获取更多信息吗?或者给我一个关于如何设置和使用它等的概述。

最佳答案

数据保护 API 主要用于保护用户凭据下的加密 key 和 secret 。如果您想将散列密码存储在数据库中,DAPI 并不是您真正想要的。

The ASP.NET Membership Provider用于管理用户,包括用盐散列密码。不幸的是,似乎没有一种方法可以只返回散列密码,所以如果您不需要额外的功能,可能值得从 CodeFirst Membership Provider 之类的东西中提取相关代码。 (请参阅源代码中的 Crypto.cs)。此处的优点是此成员资格提供程序使用 PBKDF2 来派生哈希,在给定轮数的情况下,它更能抵抗暴力攻击。这也是方法 StackOverflow本身使用。

关于c# - 有关数据保护 API (DPAPI) 的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14149769/

相关文章:

c# - 在具有返回值的函数中使用 out 参数

asp.net - MVC : User Message Stack implementations

javascript - Select2 -- 占位符不显示

security - SSL 到底有多安全?

security - 如何使 php/html 页面安全/https?

security - 在计算机安全中,什么是 secret channel 和辅助 channel ?

c# - 以特定时间间隔执行事件

c# - WCF 服务引用命名空间与原始命名空间不同

c# - 是否可以将 DataAnnotations 与接口(interface)继承一起使用?

asp.net-mvc - asp.net mvc web api 同一个 Controller 不同的函数参数