问题描述
|
我一直在阅读有关LVL的信息,并已在我的应用程序中实现了它,并通过初始屏幕检查了许可证。我不是要保护我的应用程序安全,并要100%做到无懈可击,而只是想让它不鼓励尝试破解。
由于我的应用程序需要在线连接,并且经常从服务器上获取数据,因此我想在服务器端实施许可证检查,如果许可证有效,它将返回数据,否则将不返回任何数据。
我在这里阅读了此博客文章:
\“如果您的应用程序具有在线组件,则防止盗版的一种非常强大的技术是将包含在ResponseData类中的许可服务器响应的副本及其签名发送到您的在线服务器。然后,您的服务器可以验证用户已获得许可,并且如果不拒绝,则拒绝提供任何在线内容。
由于许可证响应是经过加密签名的,因此您的服务器可以使用存储在Android Market发布者控制台中的公共RSA密钥进行检查,以确保许可证响应未被篡改。
在执行服务器端验证时,您将需要检查以下所有内容:
响应签名有效。
许可证服务返回了LICENSED响应。
软件包名称和版本代码与正确的应用程序匹配。
许可证响应尚未到期(请额外检查VT许可证响应)。
您还应该记录userId字段,以确保破解的应用程序不会重播另一个许可用户的许可响应。 (这可以通过来自单个userId的异常大量的许可证检查来看到。)\“
我只需要帮助就可以开始执行服务器端验证。是的,我可以获得响应签名,LICENSE或NOT_LICENSED响应,程序包名称,许可证到期,但是如何在服务器上签入?
任何帮助入门将不胜感激。谢谢你的时间。
解决方法
这可以帮助您入门:android-market-license验证php项目
,这应该使您开始:
http://php.net/manual/zh/function.openssl-verify.php
我无法验证它的工作效果如何,尽管我们的PHP专家仍在研究它。