假设我有一个在线排行榜上发布的高分游戏。作弊者通过在发布之前更改内存中的分数来欺骗排行榜。
我认为一个解决方案是加密存储在内存中的数字,并且只有在向用户显示分数时才解密。将加密的分数发送到在线排行榜。
但我认为这个解决方案存在一个问题:可以对加密值进行数学运算吗?什么加密技术允许这样做?
假设我有一个在线排行榜上发布的高分游戏。作弊者通过在发布之前更改内存中的分数来欺骗排行榜。
我认为一个解决方案是加密存储在内存中的数字,并且只有在向用户显示分数时才解密。将加密的分数发送到在线排行榜。
但我认为这个解决方案存在一个问题:可以对加密值进行数学运算吗?什么加密技术允许这样做?
您的用例的最大问题是密钥必须位于内存中的某个位置,以便您可以加密/解密数据,因此如果“坏”用户有足够的知识来更改内存中的高分,它不应该他也很难找到钥匙。
但是,我可能是错的,或者您的“真正”问题是是否可以对加密值执行数学运算。答案是肯定的,同态加密。
您可以对分数进行加密,在需要进行数学运算的任何时候解密并加密回来;基本上,您需要在 OOP 术语中加密分数或任何其他信息的设置器和返回解密分数的获取器,因此在内存中您将始终存储加密信息