如何使文件仅在保存时用户无法读取+;VB.net/C#

如何使文件仅在保存时用户无法读取+;VB.net/C#,c#,vb.net,encryption,cryptography,C#,Vb.net,Encryption,Cryptography,如何使文件仅在保存到磁盘时(例如在C驱动器上)用户无法读取?如果数据来源于应用程序,并且仅适用于同一Windows计算机上的当前用户 // using System.Security.Cryptography; var path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"/user data that only a program run by this user can re

如何使文件仅在保存到磁盘时(例如在C驱动器上)用户无法读取?

如果数据来源于应用程序,并且仅适用于同一Windows计算机上的当前用户

// using System.Security.Cryptography;

var path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + 
    @"/user data that only a program run by this user can read.dat";
Console.WriteLine(path);
var entropy = Encoding.UTF8.GetBytes("See http://security.stackexchange.com/a/58121");


var data = Encoding.UTF8.GetBytes(
    @"Data to be stored in a way that only programs that run under 
    this account can decrypt but nobody's eyes can understand. But 
    if an admin forces a password change, it's irretrievable 
    (see http://stackoverflow.com/a/4755929/2226988).");
File.WriteAllBytes(path, ProtectedData.Protect(
    data, 
    entropy, 
    DataProtectionScope.CurrentUser));


var readBack = ProtectedData.Unprotect(
    File.ReadAllBytes(path), 
    entropy, 
    DataProtectionScope.CurrentUser);
Console.WriteLine(Encoding.UTF8.GetString(readBack));

只要在读取或写入文件时通过
CryptoStream
。但是你需要弄清楚把钥匙放在哪里。读取加密不会使数据对人眼不可见,只是无法读取。那么数据在哪里呢?你知道如何将它保存到文件中吗?仅仅是文本吗?如果文件是针对单个Windows机器上的单个用户,请考虑数据保护API。@ PrutoNox,我的意思是“不可读”。谢谢你的精确性。数据由应用程序在运行时创建,并保存到用户存储信息的磁盘上的位置,例如C驱动器。我要保存的是加密的数据。但是当应用程序打开这个文件时,它需要被解密。我只希望保存的数据无法被人读取eyes@Tom布洛杰,你能给我举个例子吗?