0

我正在使用 DPAPI 来加密我的 asp.net 配置文件。从我对 DPAPI 的简要阅读中,我知道它使用 Windows 密码作为密钥来进行加密。问题,谁的Windows密码?

如果我有一个 asp.net Web 应用程序,并且我在 application_start 事件中挂钩了配置文件加密,它会使用我的应用程序池身份(网络服务)密码吗?

如果我有一个桌面控制台应用程序,并且我有一个 Windows 调度程序来定期运行这个应用程序,DPAPI 将使用谁的密码来加密/解密配置文件?

4

1 回答 1

1

DPAPI 在加密或解密时接受三个参数...

  1. 数据(字节数组)
  2. 可选熵(字节数组)即盐
  3. “范围”(System.Security.Cryptography.DataProtectionScope.CurrentUserSystem.Security.Cryptography.DataProtectionScope.LocalMachine

由于“熵”被特别命名为“可选”,如果未提供,则仅使用用户凭据或机器凭据进行加密,这意味着它无法在不同用户或不同机器上运行加密,无论您使用过哪个“范围”。

我将可选熵称为“盐”,因为它是密码学中常用的术语,用于表示“辅助”密码短语,它与用户或机器凭据混合,然后需要密码短语和特定的用户或机器凭据

简短回答:使用的“密码”来自用户凭据或机器凭据

于 2013-03-21T17:29:31.123 回答