【发布时间】:2013-03-30 05:08:24
【问题描述】:
对于密码加密,我想使用ProtectedData。
据我所知,这是CryptProtectData 的包装器。
MSDN 仅对基于用户凭据的加密进行了模糊说明 并且解密通常必须在同一台机器上完成,如果用户有 没有漫游配置文件。
它使用哪种加密算法?
是否有任何分析表明这种加密是否适合密码存储?
如何实现本地密码存储?
【问题讨论】:
标签: c# encryption passwords dpapi
对于密码加密,我想使用ProtectedData。
据我所知,这是CryptProtectData 的包装器。
MSDN 仅对基于用户凭据的加密进行了模糊说明 并且解密通常必须在同一台机器上完成,如果用户有 没有漫游配置文件。
它使用哪种加密算法?
是否有任何分析表明这种加密是否适合密码存储?
如何实现本地密码存储?
【问题讨论】:
标签: c# encryption passwords dpapi
This MSDN 文章有更多关于CryptProtectData 和DPAPI 的信息,并且应该包含您需要的信息。特别是:
DPAPI 最初会生成一个称为 MasterKey 的强密钥,它是 受用户密码保护。 DPAPI 使用标准加密 PKCS #5 中描述的称为基于密码的密钥派生的过程 从密码生成密钥。然后这个密码派生密钥 与 Triple-DES 一起使用对 MasterKey 进行加密,最终存储 在用户的个人资料目录中。
本文适用于旧版本的 Windows,因此根据您的 Windows 版本,这些算法可能会发生变化,但它们的安全性可能不会低于此处提到的那些。
这是否适合“密码存储”,在某种程度上取决于您的确切含义以及您要存储的密码。
【讨论】: