在Windows C++;

在Windows C++;,windows,security,c++11,file-io,Windows,Security,C++11,File Io,您好,我想看看是否有一个很好的方法来保护windows上的文件。目前我正在用C++编写文件到Windows中,像这样: 写: string filePath = GetStorageFilename(SomeFileName); ofstream dataFile; dataFile.open(filePath, ios::out | ios::binary); dataFile.write((char*)data.data(), data.size()); dataFile.close();

您好,我想看看是否有一个很好的方法来保护windows上的文件。目前我正在用C++编写文件到Windows中,像这样:

写:

string filePath = GetStorageFilename(SomeFileName);

ofstream dataFile;
dataFile.open(filePath, ios::out | ios::binary);
dataFile.write((char*)data.data(), data.size());
dataFile.close();
阅读:

使用std::basic\u ifstream;
使用std::istreambuf_迭代器;
自动文件名=GetStorageFilename(数据描述符);
基本ifu流文件(文件名,ios::binary);
返回字节向量((istreambuf_迭代器(文件)),istreambuf_迭代器();
我想知道是否有更好的方法,因为这是敏感数据。基本上,数据已经在安全环境中加密。但我希望有一种方法可以防止非管理用户写入和读取数据,即使数据已经加密。如果It部门需要管理权限以防止拒绝服务的情况,那就太好了


谢谢,

最简单的解决方案是使用一个已经限制为管理用户的目录。您是指内置的管理员帐户,还是您在自己的程序中具有管理员角色?在第一种情况下,可以按原样使用NTFS安全性。如果没有,您需要创建自己的“FooAdmin”组,创建一个仅限于“FooAdmin”成员的目录

using std::basic_ifstream;
using std::istreambuf_iterator;

auto fileName = GetStorageFilename(dataDescriptor);
basic_ifstream<uint8_t> file(fileName, ios::binary);
return ByteVector((istreambuf_iterator<uint8_t>(file)), istreambuf_iterator<uint8_t>());