当前位置:编程学习 > C#/ASP.NET >>

程序通过CPU号+日期进行MD5生成序列号加密,限制使用1个月,如何防止修改日期

程序通过CPU号+日期进行MD5生成序列号加密,限制使用1个月,如何防止用户通过修改日期来继续使用 --------------------编程问答-------------------- 好像没有太多好的办法。
一个是从服务器读取时间。
还有就是隔段时间记录下系统时间(不能用MD5了,没法解密).如果回退了,就说明用户修改系统时间了。 --------------------编程问答-------------------- CPU号?除了Pentium III的CPU有唯一的序列号(而且基本上主板厂商默认还都在BIOS中关闭了),其它CPU没有可以唯一确定自身的编号。 --------------------编程问答-------------------- 可以记录网卡mac地址与你的序列号绑定,跟服务器通信比较,不要放在本地。 --------------------编程问答-------------------- 修改时间继续使用那你就让他用好了呗。这种贪小便宜的人一般不会付费了,就算你增加了限制,他们用不起来也估计不会付费,而是换其它软件或者干脆不用拉倒。因为为了用一个软件而修改时间,这已经很极端了,这会导致计算机内很多软件运行不正确。稍微正常一点思维的用户,都不会为了贪这个小便宜去修改时间,甚至还不如重装系统再免费试用你的软件呢。你想想,你的研发经费不为付费的用户或者潜在会付费(意识到不付费软件受到限制,但是认可你软件价值)的用户服务,去为根本不会付费的人花钱,不是荒谬么?这种完全不会付费的,就让他们用,一来帮你做做广告,一来用事实上的免费挤压竞争对手的份额,不是很好。 --------------------编程问答-------------------- 读网络时间即可 --------------------编程问答--------------------
引用 4 楼 caozhy 的回复:
修改时间继续使用那你就让他用好了呗。这种贪小便宜的人一般不会付费了,就算你增加了限制,他们用不起来也估计不会付费,而是换其它软件或者干脆不用拉倒。因为为了用一个软件而修改时间,这已经很极端了,这会导致计算机内很多软件运行不正确。稍微正常一点思维的用户,都不会为了贪这个小便宜去修改时间,甚至还不如重装系统再免费试用你的软件呢。你想想,你的研发经费不为付费的用户或者潜在会付费(意识到不付费软件受到限制,但是认可你软件价值)的用户服务,去为根本不会付费的人花钱,不是荒谬么?这种完全不会付费的,就让他们用,一来帮你做做广告,一来用事实上的免费挤压竞争对手的份额,不是很好。

是一台设备上的软件,担心客户扣压款而采取不得已的手段。 --------------------编程问答-------------------- 首先这个软件在安装后的第一次运行必须设置成需要一个注册号,你可以用硬盘号、CPU号、网卡号等为基础生成,同时在生成的注册号中加入日期信息,等到时间后,程序给出提示并停止运行,要求客户输入注册号。至于用户更改时间的问题,记得VB6上有一个控件,当用户修改系统时间时可以产生事件,给出用户警告,如强行修改,可以使程序自动删除自己。 --------------------编程问答--------------------
引用 7 楼 kxyzjm62 的回复:
首先这个软件在安装后的第一次运行必须设置成需要一个注册号,你可以用硬盘号、CPU号、网卡号等为基础生成,同时在生成的注册号中加入日期信息,等到时间后,程序给出提示并停止运行,要求客户输入注册号。至于用户更改时间的问题,记得VB6上有一个控件,当用户修改系统时间时可以产生事件,给出用户警告,如强行修改,可以使程序自动删除自己。


那如果客户修改日期时并没有运行你的程序呢.

我是这样,先保存序列号和新建标识

NewFlag=0或1或其它标识的MD5的值
License=密码的MD5的值
正确输入注册号时,保存NewFlag=0的MD5的值,和License
然后每次运行都要判断NewFlag是否为0和License是否正确,有一个不正确,则提示软件失效.
只要出现失效,NewFlag=1的MD5的值.
这样,他修改时间后NewFlag并非原来正确的标识(比如0),所以软件一样失效.
只是这样对稍为外行的人有效,对专业破解的人,那只能看着办了. 
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,