我正在用java写一个游戏,我想保存我的游戏。我将把它作为一组XML文档保存在一个zip文件中。我想知道的是,如果他们是一种方式,我可以透明地做到这一点,以便用户无法编辑这些文件或找到它们。我曾考虑过只是将文件隐藏起来,但这似乎是一种肮脏而丑陋的方式。我最不喜欢隐藏文件的是他们似乎不兼容系统。如果他们无论如何都将文件保存到jar中并从中读取它们,那也同样可以接受。此外,在java中隐藏文件似乎并不是一个好方法。任何帮助将不胜感激。透明地保存应用程序数据
0
A
回答
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的系统,“隐藏”仅表示文件名以“。”开头。
相关问题
- 1. CakePHP透明保存唯一数据
- 2. 如何保存应用程序数据
- 3. 保存应用程序的Python数据
- 4. 应用程序不保存数据 - SharedPreferences
- 5. 保存应用程序数据?
- 6. 如何在应用程序中本地保存数据?
- 7. 数据库的Hibernate加密对应用程序完全透明
- 8. 使用iptables透明Webproxy应用程序
- 9. 透明的iphone应用程序
- 10. WPF - 半透明应用程序
- 11. 创建透明的iOS应用程序
- 12. flex应用程序透明backbround
- 13. 透明头与应用程序框架
- 14. PIL不保存透明度
- 15. 窗口中的不透明行存储应用程序
- 16. 保存数据时核心数据应用程序崩溃
- 17. iPhone - 透过应用程序的半透明黑色状态栏
- 18. 应用程序状态,数据在内存中保存多久?
- 19. PHP应用程序如何将数据保存在内存中?
- 20. 在应用程序退出前保存应用程序数据iOS
- 21. 我应该如何保存闹钟应用程序数据?
- 22. 应该将永久数据保存在Angular应用程序中
- 23. 跨平台应用程序应该在哪里保存数据?
- 24. C#应用程序保存
- 25. 保存应用程序
- 26. 从android应用程序保存数据到远程服务器
- 27. Android:将数组保存到应用程序数据
- 28. 保存短信从我的应用程序发送到数据库的短信应用程序本地
- 29. Android应用程序更有效地去数据库或保持内存收集
- 30. 在Windows 8应用程序中本地保存数据的最佳方法
如何使用对象序列化?结果将很难编辑,但并非不可能。 – 2013-04-29 22:31:50
我知道,但后来我必须创建一个保存文件夹,我也必须担心版本之间的兼容性,我一次写多个对象,但我使用xml序列化我的对象使用XMLEncoder并保存所有将xml文件转换为zip。 – 2013-04-29 22:33:43
你可以使用你的XML格式,但通过一个盐渍散列,只是为了让玩家不能直接编辑它,而不会有可能破坏它。 – jeff 2013-04-29 22:57:53