假设我有一个在线排行榜上发布了高分的游戏。作弊的人在发布之前通过改变内存中的分数来欺骗排行榜。
我认为一个解决方案是加密存储在内存中的数字,只有当分数显示给用户时才解密。将加密的分数发送到在线排行榜。
但我发现这个解决方案存在一个问题:可以对加密值进行数学运算吗?哪种加密技术可以做到这一点?
发布于 2013-02-27 19:20:34
你的用例最大的问题是,密钥必须在内存中的某个地方,这样你才能对数据进行加密/解密,所以如果一个“坏”用户有足够的知识来更改内存中的高分,那么他也应该很容易找到密钥。
然而,我可能是错的,或者你的“正确”问题是一个人是否可以对加密值执行数学运算。答案是肯定的,使用homomorphic encryption。
发布于 2013-02-27 18:23:46
您可以在需要进行数学运算的任何时候对分数进行加密、解密,然后再对其进行加密;基本上,在OOP术语中,您需要对分数或任何其他信息进行加密的setter和返回解密分数的getter,因此在内存中总是存储加密的信息。
https://stackoverflow.com/questions/15109530
复制相似问题