我正在使用 DPAPI 来加密我的 asp.net 配置文件。从我对 DPAPI 的简要阅读中,我知道它使用 Windows 密码作为密钥来进行加密。问题,谁的Windows密码?
如果我有一个 asp.net Web 应用程序,并且我在 application_start 事件中挂钩了配置文件加密,它会使用我的应用程序池身份(网络服务)密码吗?
如果我有一个桌面控制台应用程序,并且我有一个 Windows 调度程序来定期运行这个应用程序,DPAPI 将使用谁的密码来加密/解密配置文件?
DPAPI 在加密或解密时接受三个参数...
System.Security.Cryptography.DataProtectionScope.CurrentUser
或
System.Security.Cryptography.DataProtectionScope.LocalMachine
)由于“熵”被特别命名为“可选”,如果未提供,则仅使用用户凭据或机器凭据进行加密,这意味着它无法在不同用户或不同机器上运行加密,无论您使用过哪个“范围”。
我将可选熵称为“盐”,因为它是密码学中常用的术语,用于表示“辅助”密码短语,它与用户或机器凭据混合,然后需要密码短语和特定的用户或机器凭据
简短回答:使用的“密码”来自用户凭据或机器凭据