我需要在我的Android应用程序中添加一些生成激活码的内容,以便应用程序功能仅在应用程序激活时才有效。最好的方法是什么?
答案 0 :(得分:0)
我相信你不能只使用你的应用程序,你肯定需要服务器的帮助,它会为你生成激活码并与登录用户匹配。一旦生成的激活码通过电子邮件或任何其他方式传递给用户,您就可以匹配用户给出的激活码,然后与服务器中的激活码匹配,如果匹配,让他们使用这些功能。
我希望这就是你想要的。但我甚至可能会愚蠢到误解你。如果这是你想要的,请告诉我。
答案 1 :(得分:0)
如果我正确理解了这个问题,那么你想要达到的目标在技术上是不可能的。
您的应用所具有的任何功能都已存在于应用中,已下载到客户端。用户可以使用调试器来反汇编应用程序文件,并将源代码更改为不需要激活代码或接受任何代码(更容易,但两者都可以)。你给客户的任何东西都应被视为完全由客户控制,其中的任何逻辑都可以改变,秘密可以看到等等。
这可能不是直截了当的,特别是如果你使用某种混淆,但它总是可能的。问题只是需要的努力。
努力是关键。在某些情况下,保护低价值资源,可能足以阻止最低调的攻击者。它始终与风险和保护成本有关。但是你需要注意上面的内容,即应用程序中的逻辑无法受到保护。
因此,如果您想保护自己的内容,可以选择不同的方案:
有两个独立的应用,一个免费,不含付费功能,一个付费。用户可以使用免费的,然后根据需要购买另一个。
具有服务器提供的付费功能。如果关键业务逻辑位于服务器端,您可以真正实施访问控制规则,并且可以控制谁有权访问。这可能会严重影响您的应用程序架构和功能。
如果您要保护的值很低,您可以在应用程序中进行模糊处理和访问控制逻辑,如上所述,但您需要注意这可以相对容易地破解,尤其是在Android上通过改变apk。