使用ProtectedData.Protect时的DataProtectionScope

时间:2011-07-16 18:01:50

标签: c# encryption cryptography scope

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

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

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

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

1 个答案:

答案 0 :(得分:2)

CurrentUser范围存储仅当前记录的用户将能够检索数据的加密密钥。另一方面,LocalMachine范围允许同一台计算机上的任何帐户访问文件但拒绝远程访问。使用哪一个取决于您的需求。