创建应用程序可以编辑但用户不能编辑的文件
Create file that the application can edit but the user cannot
我正在制作计分游戏,想保存高分。我想将乐谱保存在程序可以访问的文件中(当然),但乐谱不应由用户编辑(可能是只读文件)。只读文件的问题是,很明显,它是只读的,所以我不能给它写高分。 有什么方法可以创建一个可以由应用程序编辑但用户不能编辑的文件,还是我必须以某种方式加密文件?
注:我比较喜欢C(stdio.h
)写文件的方式
有一种在类 Unix 系统上完成此任务的既定方法,但我不知道您在其他平台上如何实现。想法是为高分文件赋予一个特殊组的组 ID,通常简称为 games
。然后把游戏本身setgidgames
,让普通用户可以运行游戏,游戏可以编辑高分文件,但是用户不能直接写入高分文件。
有关 Unix 和 Linux 的更多详细信息:https://unix.stackexchange.com/a/59059/14308
即使加密也不会阻止您的应用程序以外的其他程序对文件的编辑。
我可以建议一种选择是简单地以二进制格式存储数据吗?然后,您可以省去实施加密的复杂性,但仍可防止对文件进行任何意外编辑。
您还可以让您的应用程序将该文件设置为对所有人只读,然后将其设置为仅在使用时可写。同样,这不会阻止其他人更改这些权限,但会防止意外编辑。
我正在制作计分游戏,想保存高分。我想将乐谱保存在程序可以访问的文件中(当然),但乐谱不应由用户编辑(可能是只读文件)。只读文件的问题是,很明显,它是只读的,所以我不能给它写高分。 有什么方法可以创建一个可以由应用程序编辑但用户不能编辑的文件,还是我必须以某种方式加密文件?
注:我比较喜欢C(stdio.h
)写文件的方式
有一种在类 Unix 系统上完成此任务的既定方法,但我不知道您在其他平台上如何实现。想法是为高分文件赋予一个特殊组的组 ID,通常简称为 games
。然后把游戏本身setgidgames
,让普通用户可以运行游戏,游戏可以编辑高分文件,但是用户不能直接写入高分文件。
有关 Unix 和 Linux 的更多详细信息:https://unix.stackexchange.com/a/59059/14308
即使加密也不会阻止您的应用程序以外的其他程序对文件的编辑。
我可以建议一种选择是简单地以二进制格式存储数据吗?然后,您可以省去实施加密的复杂性,但仍可防止对文件进行任何意外编辑。
您还可以让您的应用程序将该文件设置为对所有人只读,然后将其设置为仅在使用时可写。同样,这不会阻止其他人更改这些权限,但会防止意外编辑。