【发布时间】:2011-02-03 14:05:20
【问题描述】:
例如,如果我有三个 ASCII 文件:
file1.txt
file2.txt
file3.txt
...我想将它们组合成一个加密文件:
database.txt
然后在应用程序中,我将解密 database.txt 并将每个原始文件放入堆上的“文件”类中:
class File{
public:
string getContents();
void setContents(string data);
private:
string m_data;
};
有没有办法做到这一点?
谢谢
【问题讨论】:
-
可以在 C++ 中完成。你真正的问题是什么?你想用加密来完成什么?如果 File 类有一个 setContents 函数,那应该只是改变内存中的解密版本,还是将新内容写回磁盘上的加密文件?
-
我只是不想让最终用户看到这些文件,仅此而已。它将解密内存中的文件。谢谢
-
用户也可以读取内存。如果您想对典型用户隐藏数据,请为该文件指定一个自定义扩展名(例如,.dfr 表示项目“r”的数据文件)。
-
这对我来说感觉像是三个问题:(1)如何将 3 个文件合并为 1 个,然后再次拆分它们(又名:归档,但一种特殊情况); (2)如何在攻击者控制下运行的程序中加密数据以进行解密(AKA:DRM,一般来说是一个无法解决的问题,因此需要更多信息); (3) 如何将数据复制到包含在堆分配结构中的字符串中。这些是完全不同级别的编程任务,您是否需要所有三个方面的帮助,或者您是否可以单独处理它们,您只是想知道是否有一种特别好的方法可以同时完成所有三个?
标签: c++ encryption file