如何让用户无法访问文件,但我的程序可以访问这些文件?

时间:2015-08-04 15:47:51

标签: ruby file

我目前正在制作一款小游戏,并希望用户可以保存他们的角色,这些角色可能会存储在文本文件中。有没有办法让Windows资源管理器或whathaveyou中的用户无法访问此文本文件,以便保存篡改是不可能的(或者至少更难),但我的程序也可以访问?

1 个答案:

答案 0 :(得分:1)

除非您的游戏或守护程序作为玩家的Windows帐户无法访问的其他用户运行,否则您要求的功能是不可能的。通常不是这种情况,因为播放器可能具有管理员访问他或她自己的计算机的权限。据我所知,实际上没有办法从精明的root /管理员用户那里完全保护文件,而没有可以保存密钥的外部服务。

您可以采取一些步骤来更改文件:保存文件然后生成校验和,md5,sha2,或使用其他散列函数来散列文件。然后将哈希存储在一个单独的文件中(或者将其添加到您编写的文件的末尾)。

当您读取文件时,您运行通过相同散列函数读取的内容,并确保散列与您在文件中存储的散列相同。

这当然可以被精明的用户攻击,但却是阻止人们搞乱游戏文件的好方法