DPAPI:在用户登录之前使用CryptUnprotect

Wan*_*r3r 11 windows winapi dpapi

我正在使用DPAPI来存储XML数据.CryptProtectData之后的数据存储在文件中.在我的一个用例中,需要在任何用户登录工作站之前解密此数据.由于,我不能在此使用用户专用密钥,我在加密时设置标志"CRYPTPROTECT_LOCAL_MACHINE".熵键是静态文本.

Unprotect在所有场景中都有效,除非我在登录前调用它(没有用户登录).它的返回错误87(参数不正确).

我重新阅读了整个DPAPI文档,以了解如何生成密钥.但是,遗憾的是,这个特定的旗帜没有足够的信息.

CryptUnprotectData会在这种情况下工作吗?是否可以由在某个用户会话下运行的应用程序调用?任何帮助表示赞赏.

感谢:D

use*_*484 2

我们使用 DPAPI 来存储服务所需的密码:

  • 使用 CRYPTPROTECT_LOCAL_MACHINE 进行加密 | CRYPTPROTECT_UI_FORBIDDEN。

  • 使用 CRYPTPROTECT_UI_FORBIDDEN 解密

该服务在机器启动时运行(即登录之前);一切正常。