假设我在在线排行榜上发布了一个高分的游戏。骗子在张贴之前通过改变记忆中的分数来欺骗排行榜。
我认为解决方案是加密存储在内存中的数字,并且仅在向用户显示分数时解密。将加密的分数发送到在线排行榜。
但是我觉得这个解决方案存在问题:可以对加密值进行数学运算吗?什么加密技术允许?
答案 0 :(得分:3)
你的用例的一个大问题是密钥必须在内存中的某个位置,以便你可以加密/解密数据,所以如果“坏”用户有足够的知识来改变内存的高分,那么他也应该很难找到钥匙。
然而,我可能错了,或者你的“真实”问题是,如果可以对加密值执行数学运算。答案是肯定的,homomorphic encryption。
答案 1 :(得分:1)
您可以加密分数,随时解密您需要进行数学运算并加密回来; 基本上你需要在OOP术语setter加密分数或任何其他信息和getter返回解密分数,所以在内存中你总是存储加密信息