Android 验证应用程序是否在服务器端属于我
我正在写一个铃声库应用程序,铃声驻留在服务器上,用户可以下载 我想要的是检查和验证连接是否真的来自我的应用程序,而不是其他应用程序或HTTP请求生成器。例如,我不喜欢有人编写一个应用程序,使用我的后端并在应用程序中显示他的广告。这就像是网站中的图像过滤,通过检查推荐人来防止 在应用程序中插入密钥是不可能的,因为android应用程序可以很容易地反编译。我曾想过获得应用程序签名并将其哈希作为密钥发送,但这就像任何应用程序都可以访问其他应用程序签名哈希一样 编写应用程序的一部分,用本机代码进行通信,怎么样?它像java代码一样容易反编译吗Android 验证应用程序是否在服务器端属于我,android,Android,我正在写一个铃声库应用程序,铃声驻留在服务器上,用户可以下载 我想要的是检查和验证连接是否真的来自我的应用程序,而不是其他应用程序或HTTP请求生成器。例如,我不喜欢有人编写一个应用程序,使用我的后端并在应用程序中显示他的广告。这就像是网站中的图像过滤,通过检查推荐人来防止 在应用程序中插入密钥是不可能的,因为android应用程序可以很容易地反编译。我曾想过获得应用程序签名并将其哈希作为密钥发送,但这就像任何应用程序都可以访问其他应用程序签名哈希一样 编写应用程序的一部分,用本机代码进行通信,
我真的想不出任何其他的方法,我不喜欢别人为了他们的利益而使用我的资源。你可以做一些事情
或者,尝试更改您的模型,以便您验证的是用户而不是应用程序-这要简单得多 不可能绝对确定该应用程序是您的-请参阅和。如果你真正想问的是如何合理地确定应用程序是你的,换句话说,其他android开发者使用什么样的最佳实践,那么我也想知道答案…@DevOfZot我看到了两个链接,这不是一个安全的方法。除了使用https,如何在本机代码中实现应用程序的通信部分。我认为反编译本机代码比使用dex2jar反编译如此容易的java要困难得多?那又如何呢?它不是万能的,它仍然是可反编译的,只是有点难。你没有让任何东西变得“安全”,只是混淆了东西,使应用程序整体上更难维护。因此,一般来说没有办法。如果设备是根设备,没有办法。根据我列出的要点,在非根设备上,任何消费者数据都将非常接近牢不可破。根据你的问题(没有冒犯的意思),我怀疑数据不会那么安全。另一方面,我的银行应用程序大量使用ProGuard,并根据第一原理实现了自己的RSA加密(您可以从base64中的REST API获得e和n)。这当然对安全性并没有任何帮助,但它使逆向工程变得非常困难(我已经放弃了我的随意尝试)。