如何存储数据,以便用户不容易篡改?

2024-04-18 04:32:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Python相当陌生,作为一个项目,我正在开发一个小游戏。我想确保我的数据存储的格式,我不会遇到问题前进。你知道吗

我需要存储的数据对于通过过程生成生成一些游戏中的元素是不可或缺的,过程生成本质上是存储这些对象的名称、属性和可能的行为。我不希望玩家能够轻易地编辑一个文件并更改值,这样一个普通的一级生物就会突然掉落200万金币。你知道吗

我的意图是最终使用Py2Exe或PyInstaller。我考虑过XML、YAML和JSON,但是我不确定我应该朝哪个方向走,或者我可能不知道什么。你知道吗

我敢肯定,如果一个用户非常想知道,他们可以找到它,但什么是最好的方式,让它不方便的普通用户篡改所说的数据?你知道吗


Tags: 文件数据项目对象名称游戏元素编辑
1条回答
网友
1楼 · 发布于 2024-04-18 04:32:16

这是不可能解决的。您应该使用某种加密或签名方案来确保数据不被篡改,并结合模糊处理,这样就不能轻易地从密文中提取秘密算法或密钥。你知道吗

因为这是关于篡改保护而不是数据机密性,我建议您使用数字签名算法。您将生成一个开发人员私有+公共密钥对,使用私有密钥对静态数据进行签名,并以模糊的方式将公共密钥放入代码中。你知道吗

假设操作程序比简单地反编译和读取源代码要困难的情况下,这比任何加密方案都能更好地保护对数据的操作。你知道吗

例如,如果使用对称密码对数据进行加密并将密钥存储在代码中,恶意用户可能会从代码中推断出算法和密钥并实现此功能。然后,用户将解密静态数据,对其进行操作并再次对其进行加密。你的程序如果没有被操纵,就永远不会知道内容被改变了。你知道吗

它还必须是非对称的(例如RSA签名或ECDSA),因此在静态数据上使用HMAC与对称加密具有相同的问题。你知道吗

相关问题 更多 >