ProtectedData使用哪种加密算法?

Mar*_*tus 5 c# encryption passwords dpapi

对于密码加密,我想使用ProtectedData

据我了解,这是的包装CryptProtectData

MSDN仅声明基于用户凭据的加密含糊之处,并且如果用户没有漫游配置文件,则解密通常必须在同一台计算机上完成。

它使用哪种加密算法?

是否有分析指出这种加密是否适合密码存储?

还应该如何实现本地密码存储?

Mar*_*cus 7

这篇MSDN 文章提供了有关CryptProtectData和 的更多信息DPAPI,并且应该包含您需要的信息。尤其:

DPAPI 最初生成一个称为 MasterKey 的强密钥,它受用户密码的保护。DPAPI 使用称为“基于密码的密钥派生”的标准加密过程(如 PKCS #5 中所述)从密码生成密钥。然后,将此密码派生密钥与 Triple-DES 一起使用来加密 MasterKey,最终将其存储在用户的配置文件目录中。

本文适用于较旧版本的 Windows,因此根据您的 Windows 版本,这些算法可能会发生变化,但它们的安全性可能不会低于此处提到的算法。

这是否适合“密码存储”,在一定程度上取决于您的意思以及您要存储的密码。