关于如何创建一个文件只有我的程序可读的任何想法

Any ideas on how to create a file only readable by my program?

本文关键字:程序 我的 任何想 文件 创建 于如何 一个      更新时间:2023-10-16

所以我注意到当我想为我的程序编写外部数据时,我必须使用它,并且将我想要的数据插入到记事本中。我想知道的是,假设我想写入一个用户无法编辑的文件,比如一个保存分数的文件,或者我不希望玩家能够手动编辑的游戏。这样的事情仅仅通过c++标准库就可以实现吗,或者我需要其他的库吗?我知道有些程序可能可以读取它,但我更倾向于人们是否可以通过简单地查看记事本来读取它。

您说您只是想防止人们轻松使用notepad.exe查看和编辑文件内容。这可以通过将数据写入二进制而不是文本来实现:

std::ofstream out("score.dat", std::ios::binary);
std::uint32_t score = 12000;
out.write(reinterpret_cast<char*>(&score), sizeof score);

但是对于用户来说,使用十六进制编辑器查看和修改数据仍然是微不足道的。

您可以通过先加密数据使它需要更多的工作,但是考虑到程序必须拥有读写文件所需的所有信息,这仍然很容易绕过。