我正在用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. 如何保存應用程序數據
- 5. 應用程序不保存數據 - SharedPreferences
- 6. 如何在應用程序中本地保存數據?
- 7. 在Metro Style應用程序中保存本地數據
- 8. 數據庫的Hibernate加密對應用程序完全透明
- 9. 使用iptables透明Webproxy應用程序
- 10. WPF - 半透明應用程序
- 11. 半透明應用程序欄
- 12. flex應用程序透明backbround
- 13. 透明頭與應用程序框架
- 14. 創建透明的iOS應用程序
- 15. 透明的iphone應用程序
- 16. iOS10 - 透明應用程序背景
- 17. PIL不保存透明度
- 18. 窗口中的不透明行存儲應用程序
- 19. Cordova應用程序將本地存儲數據保存在新的應用程序版本中?
- 20. 保存數據時核心數據應用程序崩潰
- 21. 的Android應用程序崩潰保存數據時,數據庫
- 22. 用透明像素保存javafx.scene.canvas
- 23. 從.NET程序集透明地訪問本機內存
- 24. 應用程序狀態,數據在內存中保存多久?
- 25. PHP應用程序如何將數據保存在內存中?
- 26. iPhone - 透過應用程序的半透明黑色狀態欄
- 27. Android應用程序在後臺應用程序中保存數據
- 28. 在應用程序退出前保存應用程序數據iOS
- 29. 我應該在哪裏保存應用程序數據?
- 30. 應該將永久數據保存在Angular應用程序中
如何使用對象序列化?結果將很難編輯,但並非不可能。 – 2013-04-29 22:31:50
我知道,但後來我必須創建一個保存文件夾,我也必須擔心版本之間的兼容性,我一次寫多個對象,但我使用xml序列化我的對象使用XMLEncoder並保存所有將xml文件轉換爲zip。 – 2013-04-29 22:33:43
你可以使用你的XML格式,但通過一個鹽漬散列,只是爲了讓玩家不能直接編輯它,而不會有可能破壞它。 – jeff 2013-04-29 22:57:53