通过机器码获得册码的完整方案(转贴过来,留着看看).docVIP

通过机器码获得册码的完整方案(转贴过来,留着看看).doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
通过机器码获得册码的完整方案(转贴过来,留着看看)

通过机器码获得注册码的完整方案(转贴过来,留着看看) 想加密自己的软件,看过一些软件的作法,思路如下: 1、用户安装后,得出本机的机器码(硬盘的序列号,不想用网卡,因为很多机器没有网 卡)。生成机器码代码 2、用户将该机器码EMAIL给我,我用该机器码生成一个注册码,发送给用户。注册码生成 代码 3、用户在程序中输入该注册码,程序逆算该注册码,与机器码核对,查看是否相符。注册 码逆算、核对代码, 4、如果用户安装后没有得到注册码,在N天后部分功能不可用。不要太容易被改(虽然说 安装后也只有少部份功能能用)。时限功能代码, zw84611 (2002-12-2 23:8) function GetHDNumber(Drv : String): DWORD; //得到硬盘序列号 var VolumeSerialNumber : DWORD; MaximumComponentLength : DWORD; FileSystemFlags : DWORD; begin if Drv[Length(Drv)] =: then Drv := Drv + \; GetVolumeInformation(pChar(Drv), nil, 0, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, nil, 0); Result:= (VolumeSerialNumber); end; function Serial(Num:DWORD):string; //这个号码是用户给你生成注册码的,它通过对硬盘序列号编码而来。 var sNum:string; inChar:array[1..4]of char; begin Num:=Num xor 8009211011; sNum:=inttostr(Num); inChar[1]:=char(((integer(sNum[1])+integer(sNum[2]))mod 5)+integer(a)); inChar[2]:=char(((integer(sNum[3])+integer(sNum[4]))mod 5)+integer(a)); inChar[3]:=char(((integer(sNum[5])+integer(sNum[6]))mod 5)+integer(a)); inChar[4]:=char(((integer(sNum[7])+integer(sNum[8])+integer(sNum[9]))mod 5)+integer(a)); insert(inChar[1],sNum,1); insert(inChar[4],sNum,3); insert(inChar[2],sNum,5); insert(inChar[3],sNum,9); Result:=sNum; end; function encode(License:string):string; var str,sNum:string; number:dword; byte,byte1:array[1..4]of dword; inChar:array[1..3]of char; begin str:=license; delete(str,1,1); delete(str,2,1); delete(str,3,1); delete(str,6,1); number:=strtoint64(str); number:=not number; number:=number xor $1973122980; byte[1]:=(number and $0ff000000) shr 24; byte[2]:=(number and $0ff0000) shr 16; byte[3]:=(number and $0ff00) shr 8; byte[4]:=(number and $0ff); byte1[1]:=((byte[1]and $0c0)+(byte[2]and $0c0)shr 2)+((byte[3]and $0c0)shr 4)+((byte[4]and $0c0)shr 6); byte1[2]:=((byte[1]and $30)shl 2)+(byte[2]and $30)+((byte[3]and $30)shr 2)+((byte[4]and $30)shr 4); byte1[3]:=((byte[1]and $0c)shl 4)+((byte[2]and $0c)shl 2)+(byte[3]and $0c)+((byte[4]and $0c)shr 2); byte1[4]:=((byte[1]and $03)shl

文档评论(0)

qee026 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档