关于新版手机C的密匙功能设计
之前手机C的密匙功能,由于安卓系统更新的关系,体验并不好,现在准备实行账号制度,设计如下
以前存在的缺陷:
1.采用安卓识别码的形式识别用户,随着安卓的更新,这个形式在安卓10上已经不行了
2.设置密匙有漏洞,容易被破解
3.密匙是永久性的,不利于手机C特殊功能的测试,密匙是绑定手机的,对于经常刷机或者换机的用户不公平
新的设计思路:
采用联网用户制度,在服务器建立用户信息,保存用户vip的有效期,如果当前用户是会员,为他开启所有特殊功能。
在启动时上传用户手机信息与服务器匹配,如果匹配成功,更新用户key,如果匹配不成功,则退出登陆,在登陆时服务器进行用户信息更新
在启动时检测用户手机上是否具有旧的密匙信息,如果具有,则原功能保持不变,用户也可以通过购买vip来使用新的功能
如果用户没有登陆账号,则记录用户的androidID来进行用户识别,如果用户已经登陆账号,则采用账号的方式进行用户识别
防破解思路:
不要在本地记录用户识别码,识别码由每次启动app进行生成。
对本地保存的设置信息进行单独加密,采用非常规保存,对旧版本保存的数据进行迁移
在app启动时进行联网检测是否具有vip权限,如果具有才开启功能(异常恢复怎么办?异常恢复时也将vip权限一并保存起来)
以前密匙中保存了设置用户的数据,现在将这个数据不保存到本地,而是每次都让服务器返回,彻底解决本地破解问题
那没联网怎么办?(无法使用vip功能)
在app首次启动时会生成一个加密种子,这个种子对本地的数据进行加密保存(比如设置密匙),
兼容思路:
请求服务器时携带安卓版本、手机C版本等重要信息
在本地保存当前app版本(号),如果版本不一致则进行兼容处理
当用户协议进行了变更,更新app时进行提示(这个提示是富文本),服务器会保存当前用户使用的协议版本
当检测到新版本,每次弹出提示,直接进行下载安装
关于发放密匙:
账号制度,让发放密匙变得简单,只需要用户提供账号即可进行密匙发放。
相关资料:
获取androidID:https://www.jianshu.com/p/a185d3a702c6