不懂就问, Android 离线 App 限时激活方案?
資深大佬 : codeforyou 1
比如用户购买的月卡,通过邮箱和激活码请求网络激活 App,30 天后自动失效,怎么做,请大家讨论一个在 Android 端校验可行的方案,谢谢!
大佬有話說 (22)
比如你有个 TODO 类的 App,程序跑起来时发现已存在的 TODO 条目创建时间晚于当前的系统时间,满足某个阈值可以判断为用户调早了系统时间,然后拒绝服务。
然后只要保证启动是系统时间不小于已记录时间。
每次修改时只取已记录时间与当前系统时间更晚的一个。
然后你的软件不要被破解修改就好了(破解估计也没必要防了)
首先一点,如果你的用户是计算机专家,那你还是别指望通过技术手段来限制了,高手有的是,多考虑考虑法律手段或者其它吧。
如果你的用户是普通人,那根本不用考虑那么多,直接用系统时间就可以了。因为你的目的不是防着所有人,而是确保有一定比例的用户付费。在自然状态下就会有这个比例的,搞得太复杂反而可能降低合法用户的体验,从而导致流失。
申请一对公钥和私钥,将激活码、激活码创建时间、激活码对应的时长(比如一个月)、以及其他的一些参数(设备识别号之类,总之要能区分设备),然后将这些参数组合起来使用私钥将这些加密。将加密后的密文当作激活码发送给用户。
客户端使用公钥解密可以获取到上面所说的参数并进行激活,因为有激活码创建时间,所以用户需要经常调时间,甚至可以保存最近使用的时间进行验证,但是这种只针对一般用户。