CryptProtectData API提供的加密有多安全?

时间:2017-09-18 10:05:22

标签: c++ winapi encryption

说,如果我使用CryptProtectData API加密某些文本而未指定CRYPTPROTECT_LOCAL_MACHINE标志。如果我理解正确的话,这样做只允许运行我的应用程序的用户解密它。

假设我将生成的密文数据保存在我的应用程序的HKCU注册表项中。显然,其他一些用户(来自其他用户帐户)将能够从注册表中读取该数据。

我的问题是,该计算机上的任何其他用户是否能够在没有初始用户登录该计算机的情况下对其进行解密?

1 个答案:

答案 0 :(得分:2)

当然,没有其他用户可以解密它。需要用户主密钥来解密数据,并通过用户密码创建。因此,复制注册表信息不允许解密数据。

  

使用用户密码创建和加密的主密钥存储在一个   主密钥存储文件夹中的文件与其他系统一起分开   数据。用户的主密钥存储在%APPDATA%/ Microsoft / Protect /%SID%中,   其中%APPDATA%是Application Data目录。

More info here