0

我正在用java编写游戏,我想保存我的游戏。我将把它作为一组 XML 文档保存在一个 zip 文件中。我想知道的是他们是否是一种我可以透明地做到这一点的方式,以便用户无法编辑这些文件或找到它们。我曾考虑过将文件隐藏起来,但这似乎是一种肮脏而丑陋的方式。我最不喜欢隐藏文件的一点是它们在系统之间似乎不兼容。如果他们无论如何要将文件保存到 jar 并从中读取它们,那也是同样可以接受的。在java中似乎也没有隐藏文件的好方法。任何帮助将不胜感激。

4

1 回答 1

0

我想知道的是他们是否是一种我可以透明地做到这一点的方式,以便用户无法编辑这些文件或找到它们。

最终,没有。

您为在本地机器上存储状态所做的任何事情最终都可以进行逆向工程,并且该状态可以由特权用户检索。

但是你可以做很多事情来让人们很难“欺骗”。例如,您可以加密文件,或生成种子哈希来检测“修补”。


在 Java 7 上隐藏文件很简单:

Path path = FileSystems.getDefault().getPath("directory", "hidden.txt");
Boolean hidden = path.getAttribute("dos:hidden", LinkOption.NOFOLLOW_LINKS);
if (hidden != null && !hidden) {
    path.setAttribute("dos:hidden", Boolean.TRUE, LinkOption.NOFOLLOW_LINKS);
}

(复制自:http: //javarevisited.blogspot.com/2012/01/how-to-hide-file-java-program-example.html

在早期版本的 Java 中,您需要调用外部 Windows 应用程序或调用本机库来执行此操作。但请注意:

  • “隐藏”文件只对不想看的用户隐藏
  • 它们在不同平台上的工作方式不同;例如,对于基于 Linux/Unix 的系统,“隐藏”仅表示文件名以“.”开头。
于 2013-04-29T22:59:07.443 回答