[英]Is there any way to Authenticate an android App against a php web application
我正在开发这个Android应用程序,用户可以在Web服务器上将他们的SQLite数据库更新到最新版本。 一切正常,用户单击应用程序上的按钮,并将最新版本的数据库下载到Android。
这些用户只需安装应用程序,无需对单个用户进行身份验证(用户没有用户名/密码)。 即:每个人都使用相同的数据库。 数据根本不是用户特定的。 并且不需要设置双向同步。
问题是任何人都可以访问(下载)数据库。 我们必须阻止其他人手动下载数据库。 该数据库将使用php托管在Apache Web服务器中。 我可以实现php代码来控制对SQLite数据库(更新文件)的访问。
有没有办法在PHP中验证我们在Android手机中制作的应用程序,以便只有这个应用程序的用户才能直接将数据库下载到他们的手机中。
PS我已经考虑将密码硬编码到应用程序中,我们可以使用它来验证下载请求。 但是密码将由一个静态的硬编码字符串组成。 我对使用时间旋转密码算法很谨慎,因为在其他时区或不同步时钟的用户将无法更新他们的数据库。
您可以在电话应用程序和服务器中存储共享密钥,然后随时获取Web服务中的随机密钥以进行重新分析并将其用作凭据:
Android Phone Server
---------------------------------------------------------------------
"SharedSecret" "SharedSecret"
getRandomKey() <---- "This is some randomKey currently valid"
Authentication:
sha256(RandomKey + SharedSecret) <---> sha256(RandomKey + SharedSecret)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.