Java 需要帮助创建内部日志文件吗

Java 需要帮助创建内部日志文件吗,java,Java,我有一个角色创建程序,用于我创建的RPG,我希望在用户有机会编辑任何内容之前,能够记录初始转鼓的内容。我可以很容易地将信息转储到文本文件或类似文件中,但我想要的是无法编辑的内容。我将字符信息保存在序列化的类对象中。以序列化形式(即在类对象内部)记录此信息的最佳方式是什么?我想到了一根绳子,但它可能会变得很大。有更好的方法吗?我只需要创建一个对象来保存初始滚动值;不能超过几十个字节——用户要滚动多少次?你没有真正解释这些卷轴代表什么,如果有固定数量的卷轴 如果这些信息只需要在应用程序运行期间保存,

我有一个角色创建程序,用于我创建的RPG,我希望在用户有机会编辑任何内容之前,能够记录初始转鼓的内容。我可以很容易地将信息转储到文本文件或类似文件中,但我想要的是无法编辑的内容。我将字符信息保存在序列化的类对象中。以序列化形式(即在类对象内部)记录此信息的最佳方式是什么?我想到了一根绳子,但它可能会变得很大。有更好的方法吗?

我只需要创建一个对象来保存初始滚动值;不能超过几十个字节——用户要滚动多少次?你没有真正解释这些卷轴代表什么,如果有固定数量的卷轴

如果这些信息只需要在应用程序运行期间保存,那么除此之外就没有更多的事情要做了

如果此信息必须在程序执行之后保持不变,则必须以某种方式将其写入文件。如果是这样,那么就没有办法真正保护它。数十年来,RPG游戏作者一直在尝试这样做,但收效甚微。通常,解决方案是将玩家的统计信息保存在用户无法访问的中央服务器上。暗黑破坏神遭受的“欺骗”问题

最好是将“rolls”对象编写为可序列化的。将其序列化为字符串,将字符串转换为字节,使用隐藏在代码深处的加密密钥加密字节,然后将其写入文件。或者,如果您愿意,只需安全地在字符串上签名即可。这将允许用户查看统计文件,但不能修改它

旧的黑客游戏用于将游戏状态保存到一个具有类似保护的文件中,效果非常好。他们在Unix系统上使用的一个技巧是使文件的索引节点号成为签名状态的一部分。这样,如果用户试图复制该文件(以备份正在进行的游戏),inode编号将更改,从而使该文件无效。哈克对这些事情非常无情;如果它检测到一个修改的保存文件,你的角色当场死亡,游戏结束

这里的问题是,专用用户将对您的代码进行反向工程,并发现加密算法和密钥,无论您多么努力地隐藏它们,或者(如果您只是对文件进行签名)简单地修改您的可执行文件,使其不必检查签名


没有更多关于你想做什么的细节,这就是我能给你的建议。如果(按照惯例)您告诉我们您到目前为止所做的尝试,将会有所帮助。

我还没有尝试过任何日志记录。我确实为字符信息生成了一个保存文件,它是字节格式的。这是一个相当复杂的文件,有人会被迫进行逆向工程。它实际上是一个序列化类,包含许多其他序列化类的数组。记录卷的问题在于卷的编号是可变的。没有两个字符是相同的。要了解更多信息,请访问以下下载链接: