最简单的方法。
软件运行时,到 一个隐藏的路径,或 注册表 中读 第一次使用时间,如果没找到,就把当前时间当作第一次使用时间写入。
如果读到时间后,用当前时间去减 第一次使用时间,如果 》= 30 天,那就停止运行。
这种方法很容易被破解的。
本地验证是最容易被破解的。
复杂的方法。
自己做一个验证服务器。
软件运行时,把运行计算的硬件特征码,或生成 哈希码,提交给服务器验证,服务器验证后,返回验证的哈希码。
本地验证流程: 特征码+当前日期 ,再次哈希运行, 得到了结果与服务器返回的哈希码相同,那就说明可以运行,否则不运行。
服务器验证流程:
收到特征码,查数据库,存在,读第一次运行日期,读到期日期。取当前日期,如果未到期,特征码+当前日期,哈希运算,返回给客户端。
如果到期, 特牲码+截止日期(或固定或随机字符) ,哈希运算,返回给客户端
这种方法也可以被破解的。只要搞清楚的原理,也是很快的。
为提高复杂程度,可以考虑:1,客户端验证前,向服务器端请求随机字串参与运算。2、返回值按一种算法再次进行加密,以确保每次的返回值均不同。
高级的方法。
把程序的所用的 关键代码封装成DLL ,然后把DLL放到服务器端。
客户端验证通过后,把加密后的DLL发给客户端,客户端把DLL解密后仅放在内存里,然后使用这个DLL进行关键代码操作。
这个 涉及到 C++ 汇编等高深的知识。我不会。
---------------
有一种很简便的方法,就是加有时间控制的 加密壳。
这个自己百度。