【问题标题】:Whose Password does DPAPI use to encrypt?DPAPI 使用谁的密码进行加密?
【发布时间】:2012-08-15 18:42:43
【问题描述】:

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

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

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

【问题讨论】:

    标签: asp.net dpapi


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2016-03-15
      • 1970-01-01
      • 2016-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-10
      相关资源
      最近更新 更多