我用Java编写了一个简单的蛇形游戏。我想把用户的高分存储在一个数据库中,所以我创建了一个mysql数据库。我面临的问题是让程序连接到mysql数据库而不泄漏登录信息,这将允许用户处理数据库。我已经研究过了,每个人都建议在游戏和sql数据库之间使用web服务。但是问题仍然存在,任何人都可以提供数据,这可能会再次扰乱数据库。
我想到的一个选择是将jar文件和数据一起上传到web服务。然后,web服务获取散列值(查看sah 512),并将其与它应该获取的散列值进行比较,如果匹配,则继续。但是有人可以对我的游戏进行反向工程,稍微修改代码,发送原始游戏文件,但将不同的名称+分数发送到数据库。同时,让人们不断地将文件上传到web服务将是我的网络上的一个巨大的痛苦,因为考虑到我使用的是家庭网络,它只能处理这么多。
我可以用密码加密一些文件,但是由于程序能够解密它,那么用户肯定能够解密它并获得信息。
基本上,不管怎样,我给程序提供了一个数据库的密钥,有人可以对它进行逆向工程并对其进行编辑,这样他们就可以访问我的数据库。这是我的想法。无论如何,我为程序提供了一种访问数据库的方法,如果有人愿意的话,也可以用这种方法来处理数据库。
一定有办法让我能够将游戏中的信息存储到mysql数据库中,并确保没有人能够更改周围的内容,但只有我制作的程序能够。以某种方式隐藏服务或其他东西背后的细节。其他人是怎么做到的?能给我一些指导吗?欢迎提出任何意见。
最佳答案
通常,应用程序不应该直接连接到数据库,而应该调用具有数据库访问权限的服务器。
关于mysql - 如何确保mySQL数据库仅从游戏中获取值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47117474/