网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > DELPHI > 正文
Delphi通过机器码获得注册码的完整方案
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
下载{$ArticleTitle}原创论文样式
word;
var str:string; number:dword; byte,byte1:array[1..4]of dword;
begin

str:=code;
delete(str,1,1);
delete(str,4,1);
delete(str,7,1);
number:= strtoint64(str);
byte:=(number and $0ff000000) shr 24;
byte:=(number and $0ff0000) shr 16;
byte:=(number and $0ff00) shr 8;
byte:=(number and $0ff);

////0123 --> 1032
byte:=(((byte and $f0))shr 4)+(((byte and $0f))shl 4);
byte:=(((byte and $f0))shr 4)+(((byte and $0f))shl 4);
byte:=(((byte and $f0))shr 4)+(((byte and $0f))shl 4);
byte:=(((byte and $f0))shr 4)+(((byte and $0f))shl 4);

number:=((byte)shl 24)+((byte)shl 16)
+((byte)shl 8)+(byte);

byte:=((number and $0ff000000)shr 24);//右移24位
byte:=((number and $0ff0000)shr 16);
byte:=((number and $0ff00)shr 8);
byte:=(number and $0ff);

byte1:=(byteand $0c0)+((byteand $0c0)shr 2)+((byteand $0c
oceanwave (2002-12-3 7:28)
谢先!试试看,可以后马上开贴给分。
妙兔无花 (2002-12-3 7:41)

sxd781017 (2002-12-3 7:50)
good!
oceanwave (2002-12-3 8:1)
to zw84611:
试了你的代码后,有几个问题请教:
1、用GetHDNumber取得硬盘序列号后,用Serial生成注册码。那encode和decode如何用呢?
2、如何将serial逆算成为硬盘序列号与原序列号相核对?
3、Serial函数中第一行的8009211011应该就是一个加密转换的常量吧?还有inChar的Index
值?

oceanwave (2002-12-3 8:35)
看了一篇这方面的文章,是VC++的,不过思路一样
http://www.powerba.com/develop/vc/article/20011113001.htm

youth[dfw] (2002-12-3 8:37)
1、利用RSA算法
2、在功能函数中进行校验
3、多处进行校验
4、利用线程、消息、延时
5、监测软件关键点,防止强行跳过
、、、
飘摇客 (2002-12-4 9:25)
可行,使用GUID,放在注册表中,同时把这个GUID发回给你,你可以使用这个进行注册码和注册码验证。
获得GUID,
uses activex;

var
guid:TGUID;

CoCreateGUID(guid);
ShowMessage(GuidToString(guid));

yczjs (2002-12-4 10:19)
用SoftSentry加密软件搞定
Delphi园地
http://mydelphi.8u8.com

飘摇客 (2002-12-4 13:40)
其实任何的加密基本上都能被破解,这里给你一个思路。
1、用户第一次运行软件后,生成一个GUID,保存在注册表中,另外存储在文件中或者写入系统已有的文件尾部。
此为机器码,让用户发回,如果用户在注册表中删除了,就从文件中读取GUID,然后写入注册表。当然
应该还需用户发回用户的相关信息,保证在重新安装机器时能向你索回注册码;
2、根据此GUID写一个验证序列号的过程(软件中);
3、写一个注册机,根据用户邮寄回的GUID得到注册码,发给用户用于注册;
4、最好提供在线更新功能,更新时记录用户机器码(GUID),如发现有同一个GUID对同一个版本进行更新,就发布新的版本,使该GUID对应的注册码不可用。
zbsfg (2002-12-4 13:52)
oceanwave (2002-12-4 14:16)
前面我有给过一个网址:
http://www.powerba.com/develop/vc/article/20011113001.htm
这里就有提到:
------------------------------------------------------------------------------
为了确保注册码的唯一性,在注册源的采集上应当尽量选取一些唯一的、不易复制的软、
硬件信息作为原始信息。而硬件由于其不可复制性和物理唯一性成为了我们的首选目标,
而且多数计算机配件在出厂时都有一个唯一的标识号,我们可以将其作为识别的依据。符
合上述条件的标识号大致有硬盘的序列号、网卡的序列号、BIOS中的主版序列号或主机出
厂日期和标志等几种,考虑到硬件通用性、实现起来的难易程度以及系统安全性等多种因
素以硬盘序列号为佳,因为网卡随说唯一性最好但不能保证每台计

  • 上一篇资讯: DBGrid导出Excel文件
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号