比方说,如果我使用CryptProtectData API加密一些文本,而不指定CRYPTPROTECT_LOCAL_MACHINE
标志。如果我正确地理解了它,那么这样做只允许运行我的应用程序的用户解密它。
让我们假设我为我的应用程序将结果的密文数据保存在HKCU
注册表项中。因此,很明显,其他用户(来自其他用户帐户)将能够从注册表中读取该数据。
我的问题是,该计算机上的其他用户是否能够在不让初始用户登录到该计算机的情况下解密它?
发布于 2017-09-18 10:34:16
当然,没有其他用户能够解密它。解密数据需要用户主密钥,并由用户密码创建。所以复制注册表信息不允许对数据进行解密。
使用用户密码创建和加密的主密钥与其他系统数据一起存储在主密钥存储文件夹中的一个单独文件中。用户的主键存储在%APPDATA%/Microsoft/Protect/%SID%中,其中%APPDATA%是应用程序数据目录。
https://stackoverflow.com/questions/46276647
复制相似问题