2012-08-15 60 views
0

我正在使用DPAPI来加密我的asp.net配置文件。从我简短的DPAPI阅读中,我知道它使用Windows密码作为执行加密的关键。这些问题,其Windows密码?DPAPI用于加密的密码是谁?

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

如果我有桌面控制台应用程序,并且我有一个Windows计划程序来定期运行此应用程序,其密码将DPAPI用于加密/解密配置文件?

回答

1

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

  1. 的数据(字节阵列)
  2. 可选熵(字节阵列),即该盐
  3. 的 '范围'(System.Security.Cryptography.DataProtectionScope.CurrentUserSystem.Security.Cryptography.DataProtectionScope.LocalMachine

作为“熵”被特别命名的“可选的”,如果不提供那么只有用户凭据或它机器证书用于加密,这意味着它不能加密在不同用户或不同机器上运行,无论您使用哪个“范围”。

我所说的可选熵“盐”,因为它是一个通常使用的术语在密码学中用于它与用户或机器凭证混合以然后需要一个口令与特定用户或机器凭证的“次要”短语

简答题:使用的'密码'来源于用户凭证或机器凭证