C# 使用ProtectedData.Protect时的DataProtectionScope

C# 使用ProtectedData.Protect时的DataProtectionScope,c#,encryption,cryptography,scope,C#,Encryption,Cryptography,Scope,对于txt文件中写入的数据的加密/解密,我尝试使用System.Security.Cryptography.ProtectedData.Protect和Unprotect方法。这些方法的参数之一是DataProtectionScope。例如: byte[] encryptedData = ProtectedData.Protect(data, addEntropy, DataProtectionScope.CurrentUser); ... byte[] decryptedData = Prot

对于txt文件中写入的数据的加密/解密,我尝试使用
System.Security.Cryptography.ProtectedData.Protect
Unprotect
方法。这些方法的参数之一是
DataProtectionScope
。例如:

byte[] encryptedData = ProtectedData.Protect(data, addEntropy, DataProtectionScope.CurrentUser);
...
byte[] decryptedData = ProtectedData.Unprotect(data, addEntropy, DataProtectionScope.CurrentUser);

我的问题是关于
CurrentUser
LocalMachine
DataProtectionScope之间的区别。
LocalMachine
DataProtectionScope是否比
CurrentUser
one限制性更小,不同之处在于,由任何用户加密的数据可以由在同一台计算机上工作的任何其他用户解密?或者可能还有其他一些细节?

CurrentUser scope存储只有当前登录的用户才能检索数据的加密密钥。另一方面,LocalMachine作用域允许同一台计算机上的任何帐户访问文件,但拒绝远程访问。使用哪一种取决于您的需要

byte[] encryptedData = ProtectedData.Protect(data, addEntropy, DataProtectionScope.LocalMachine);
...
byte[] decryptedData = ProtectedData.Unprotect(data, addEntropy, DataProtectionScope.LocalMachine);