我们正在开发一款Android应用程序,一个测验游戏,我们希望在用户离线时缓存问题+答案。这样做的问题是我们需要从用户那里隐瞒这些数据,直到她回答了问题为止。否则,作弊会非常容易,这会对游戏造成伤害。然后,可以提取所有问题+答案并自动提交服务器API的答案。
最方便的方法是在安装时从我们的服务器检索密钥或密钥,将其隐藏在“某处”,并将其用于与服务器通信,以及加密存储中的问题+答案。但显然,将其隐藏在“某处”并不是一个安全的概念。
我已经研究了一下,似乎在这种情况下不可能进行可靠的加密,因为应用程序必须“知道”秘密(无论是证书,密码+盐,还是其他)或者至少在哪里可以找到,这可以通过反编译来提取。但是,我们会很难做到这一点。
问题是:您是否知道如何让常规用户从APK中检索秘密变得非常困难 - 即,几乎不可能编写自动密钥提取器?
到目前为止我最好的猜测:
答案 0 :(得分:1)
您可以为每个问题使用单独的密钥,这取决于上一个问题的答案。因此,除非您已经回答了问题1,否则无法解密问题2.