我正在制作一个琐事Android应用程序,我将问题和答案数据库存储在我的服务器上。在我的应用程序中,用户键入他/她的用户名和密码,然后将其发送到servlet,然后使用数据库对其进行身份验证。如果身份验证成功,将下载特定用户的用户信息并将其存储在SharedPreferences中。在用户信息中,有一个用户密钥,用于再次访问服务器以更新用户信息,并从数据库中获取其他值,例如问题和答案。但是,这不是很安全,因为任何攻击者都可以创建帐户,登录并查找用户密钥并使用它来获取琐事答案。我是否应该在服务器中使用密钥库或令牌系统来验证对数据库的请求。我该怎么做?谢谢你的帮助!
答案 0 :(得分:0)
您可以在将密钥放入共享首选项之前对其进行加密,然后在每次将其发送到服务器之前对其进行解密...不要说某人无法对您的应用进行反向工程以查看您的算法和数据出真正的钥匙。但话又说回来,人们真的试图欺骗琐事有多难?
答案 1 :(得分:0)
最安全的方法是不发送答案。将用户的答案发送到服务器,让服务器检查答案并返回对错。
答案 2 :(得分:0)
使用PGP加密。使用android中的公钥加密user / pw,然后使用服务器中的私钥对其进行解密。 mcrypt或openssl可以为你做到这一点。