【发布时间】:2016-12-06 21:39:35
【问题描述】:
将 pickle 库与我创建的一些类一起使用时,输出对用户来说相当容易阅读。例如,如果我有一个名为 saves 的填充,并将我的所有类数据保存到其中的 .save 文件中,当使用文本编辑器打开文件时,您可以隐约看到所有变量,无需太多努力,将它们更改为想要的结果。
这是我用pickle创建的保存文件中的一个sn-p(这是一个游戏):
S'Strength'
p4
I5
sS'Health'
p8
I100
在此,“健康”的值为 100,“强度”为 5,如果用户要编辑保存文件(因为它将保存在本地),他们可以轻松更改他们想要的任何变量为了作弊。
因为我正在创建一个游戏,其中保存游戏是我计划实现的功能之一,这已成为一个问题。
我确实考虑过使用加密,但使用第二个外部库是最后的手段,因为它可能非常乏味,所以我想知道是否有其他方法可以做到这一点,或者 pickle 是否带有内置的在功能上(经过研究我没有看到)。
【问题讨论】:
-
如果是单人游戏,他们想作弊,让他们。如果是多人游戏并且他们想作弊,这不会阻止他们。
-
我确实考虑过这个选项,但我至少希望它更难一点,因为有些小众社区会喜欢狩猎,它也可以起到威慑作用。
-
作为“威慑剂”,意义不大。持久的玩家可以在 pdb 中单步执行您的程序,并准确找出您是如何混淆保存的。现在,如果你只是想取悦那些想这样做的人,那完全没问题,但要清楚你想在这里做什么。
-
这是一个很好的观点,公平地说,这样做只会增加额外的任务,在一个非常大的程序中,这只会浪费处理能力
-
让它在其他地方保存输出的哈希值,并将其与加载保存进行比较 -> 如果不同,就说它“损坏”
标签: python python-3.x pickle