防止用户访问数据的最佳方法
Best way to prevent user from accesing data
所以,我一直在java练习游戏开发。现在我试图通过将数据放入文件来保存用户的进度。但是如果我把它放在一个文本文件中,显然它会很容易访问。 store/hash 数据的最佳方式是什么,例如 "current level, attack power etc".
谢谢。
您可以将日期加密并存储在文本中file.Encryption将防止用户修改它。
这将是一个模糊的答案。
如果您只是不想让它成为一个文本文件,您可以使用您正在使用的语言的二进制序列化来编写一个二进制文件。
作为第二步,您可以考虑加密您的文件。
但是,无论您做什么,无论您多么努力,只要所有数据都存储在客户端上,您的用户仍然可以更改它们。
如果您由于 space 限制不想远程存储所有信息,您可以只远程存储文件哈希并验证它没有被篡改。
您可以使用sqlite which is a file-based DB. It supports encryption以及许多操作系统,易于安装和使用!
了解更多信息 here。
实现此目的的一种非常简单的方法是使用序列化。它允许您直接获取 java 对象并将其保存在当前状态。 http://www.mkyong.com/java/how-to-write-an-object-to-file-in-java/
上有一个很好的教程
轻松读取和更改此数据的唯一方法是,如果您可以访问创建它的 java class。
所以,我一直在java练习游戏开发。现在我试图通过将数据放入文件来保存用户的进度。但是如果我把它放在一个文本文件中,显然它会很容易访问。 store/hash 数据的最佳方式是什么,例如 "current level, attack power etc".
谢谢。
您可以将日期加密并存储在文本中file.Encryption将防止用户修改它。
这将是一个模糊的答案。
如果您只是不想让它成为一个文本文件,您可以使用您正在使用的语言的二进制序列化来编写一个二进制文件。
作为第二步,您可以考虑加密您的文件。
但是,无论您做什么,无论您多么努力,只要所有数据都存储在客户端上,您的用户仍然可以更改它们。
如果您由于 space 限制不想远程存储所有信息,您可以只远程存储文件哈希并验证它没有被篡改。
您可以使用sqlite which is a file-based DB. It supports encryption以及许多操作系统,易于安装和使用!
了解更多信息 here。
实现此目的的一种非常简单的方法是使用序列化。它允许您直接获取 java 对象并将其保存在当前状态。 http://www.mkyong.com/java/how-to-write-an-object-to-file-in-java/
上有一个很好的教程轻松读取和更改此数据的唯一方法是,如果您可以访问创建它的 java class。