金桥科普  
设为首页 关于我们 邮箱登录
科普聚焦时代科技科普生活科学技术自然科学航空航天科技博览历史考古电脑IT
您现在的位置: 首页 >> 科普频道 >> 技巧实践 >> 文章详情
给vfp程序加把密封锁

曹震宇 中国电脑教育报 2001-09-06

    加密是程序员保护自己劳动成果的一种手段。然而对vfp的程序加密却不是件易事,因为vfp没有提供底层函数。本文希望能对vfp程序员有所帮助。

    由于vfp提供了相当丰富的获取磁盘文件信息的函数,这样我们可以以文件信息为突破口选择机器特征代码。在win 95/98系统中,c盘根目录下有一个名为pdos.def的系统配置文件。它在windows系统安装时建立,创建日期与系统安装日期相同,创建时间由当时系统时钟确定,精度可达几分几秒。所以用pdos.def的创建日期和时间作为标示一台微机的特征代码是最合适不过了。

    接下来的任务是如何实现加密。我们以用户是否有正确的安装盘为依据,判断用户是否合法。在vfp安装盘的第一张盘上有一必备文件setup.lst。这里面记载了压缩包中所有文件的文件名、长度及创建时间。我们可以通过检查setup.lst中是否包含与正在执行的主程序同名的文件记录判断安装盘是否正确。

    加密程序在软件安装后第一次运行前进行加密处理:

先进行安装盘检验

a=messagebox(′请在软驱中插入本软件的安装盘进行注册′,65,′新用户注册′)

if a=2 &&用户要求退出,不进行注册

cancel &&终止程序运行

endif

if not file(′a:setup.lst′) &&如果无setup.lst

文件则安装盘非法

=messagebox(′安装盘不在,退出注册′,16,′注册失败′)

cancel &&终止程序运行

endif

m.pname=program() &&获取正在执行的

主程序名

m.t=0 &&设变量t为表明

setup.lst正确的标记变量

m.handle=fopen(′a:setup.lst′)

do while not feof(m.handle)

fstr=fgets(m.handle) &&取一行内容

if m.pname$fstr &&如果此

行字串中有执行文件的记录

m.t=1 &&置t为1表明安装

盘正确

exit &&退出检验循环

endif

enddo

if m.t=0 &&如果t为0表明

安装盘不存在,禁止程序运行

=messagebox(′安装盘不正确,退出注册′,16,′注册失败′)

cancel &&终止程序运行 

endif

安装盘检验无误,开始加密

m.k=ttoc(ctot(ftime(′c:pdos.def′))+99999) 

*获取pdos.def创建时间,并加上99999秒,使之看上去不知从何而来

handle=fcreat(′key.dat′)&&新建密钥文件key.dat

=fputs(handle,m.k)&&写入密钥

=fclose(handle)&&关闭密钥文件

加密工作完成

    以上代码既可作为一个单独的加密程序出现,也可作为主程序的一部分存在。

    加密程序做好了,接下来的任务是如何解密。因为解密是加密的逆过程,只是少了判断安装盘的过程。这里不再赘述。
  发表评论 写信给编辑 关闭窗口
同栏目内容
· 让你的电脑启动画面绚起来 2007-09-12
· 小技巧帮大忙 极点五笔 2007-09-05
· 如何提高迅雷的下载速度? 2007-09-03
· Vista小技巧 消除红眼 2007-09-03
· 千千静听实用小功能 2007-08-29
· Windows 自动登陆的简单方法 2007-08-20
相关内容
近期主推
我国首架自主产权飞机完成
·我国首架自主产权飞机完成
·机器人版"千手观音"惊艳亮相
·西藏发现青藏高原最大冰川群
·中日: "月亮女神"携手"嫦娥"
·行星大碰撞砸死恐龙催生人类
·美研制会飞汽车定价9万美元
近期热门
科学家解开中子星爆发之谜
·科学家解开中子星爆发之谜
·英海域惊现大龙虾为普通龙虾5倍
·新物种金蛙体表有剧毒
·我国嫦娥工程计划测量月球
·精神病药物可治多种癌症
·视觉震撼:来自海底的精灵
近期焦点
美国发现极其罕见的白化银鲛(图)
·美国发现极其罕见的白化银鲛(图)
·美国展出罕见连体双胎双头龟
·波罗的海发现罕见短吻真海豚
·能帮你做大扫除的机器人[组图]
·法老墓3000年前坚果保存完好
·广西发现罕见溶洞钟乳石有30万年
金桥科普是一个公益性栏目,内容由作者提供或摘自互联网,其目的是向广大网民普及科学技术知识。如果您发现本网站转载或摘编了您拥有著作权的作品,请通知我们(电话:023-63659911),我们立即删除。
关于我们 | 网站地图 | 用户注册 | 广告客户 | 招聘信息 | 业务信息
Copyright@2006-2009 JQInfo.com,WONDER. All Rights Reserved
重庆科技咨询中心.重庆网得信息技术有限公司.版权所有
Email:webmaster@jqinfo.com
重庆数据通信局提供网络带宽. 渝ICP备05002327号