我目前正在写在密码被从用户拍摄并存储在数据库中的C#MVC Web应用程序 - SQL服务器。 我需要散列密码的方式。
它已被推荐为使用数据保护API(DPAPI)。 我不familliar与它在互联网上的研究,对存在的信息非常少。
任何人都可以在它的进一步信息,方向点? 或者给我如何设置它的概述,并与它的工作等。
我目前正在写在密码被从用户拍摄并存储在数据库中的C#MVC Web应用程序 - SQL服务器。 我需要散列密码的方式。
它已被推荐为使用数据保护API(DPAPI)。 我不familliar与它在互联网上的研究,对存在的信息非常少。
任何人都可以在它的进一步信息,方向点? 或者给我如何设置它的概述,并与它的工作等。
数据保护API主要用于保护加密密钥和秘密下一个用户的凭据。 如果你想散列密码存储在数据库中,DAPI是不是真的你想要什么。
的ASP.NET成员资格提供用于管理用户,包括与盐散列的口令。 不幸的是,似乎没有要只返回一个哈希密码的方法,因此,如果您不需要额外的功能,它可能是值得提取类似的相关代码CodeFirst成员资格提供 (见Crypto.cs在Source码)。 这样做的优点是这样的成员资格提供使用PBKDF2导出哈希,这是给定的回合数蛮力攻击的能力更强。 这也是该方法的StackOverflow本身使用。
.Net有用于称为DPAPI的包装类ProtectedData 。 它,它非常容易使用,并且只包含两个静态方法: Protect
和Unprotect
。 A如何对文章可以发现在这里 。 因为它既可使用DPAPI不需要密钥登录用户的凭据或机器的证书做加密,这取决于你选择什么样的范围内调用保护时。 请注意,如果你要存储在数据库中的加密数据,您必须确保始终使用相同的Windows用户帐户或机器(再次,取决于加密范围),否则你将无法对数据进行解密。 因此,根据您的应用程序,该API可能不是最优的。 它主要用于在一台机器上,而不是用于分布式应用做本地加密。