讨论数量:
见过几种
- 核心代码进行了加密, 解密用的是 扩展, 然后在使用的时候 扩展会远程请求时效,如果失效 则解密扩展解密不了代码
- 核心组件调用的是远程的接口,接口过期则使用不了
- 还有一种 就是 整一个 加密的 lock 文件, 文件中 记录了失效时间,然后使用的时候远程检测比对
你说的卖出去的是php源码吗?如果是的话那就没有什么比较好的办法了,毕竟源码都给人家了,早期php还有一些加密扩展,但都有对应的解密方式,而新出的php版本,重点都不在加密上,故也没有什么成熟的方案,唯一可行的办法就是把应用核心包抽象出来,使用c++写成php扩展,其中还得加上授权机制,在应用中调用普通函数一样调用自定义扩展,而且还要保证是核心代码,不能被绕过去,自己写加密扩展不现实。但又换个思路,既然要赚应用授权费,干嘛要用php写,go,java这些都可以闭源分发项目,这不比php方便多了?
上面有小伙伴已经给出了三种解决方案,那我就顺着其中一种说说自己的看法。那就是核心组件调用的是远程的接口,接口过期则使用不了。
这个简单一些,可以使用中间件对当前用户的到期时间进行查询,如果到期就返回到期提示,并且附带付款页面。用户的请求识别,可以使用app_id+secret的方式来确保唯一。
推荐文章: