用C语言实现对FOXPRO程序的加密.docx

上传人:b****1 文档编号:2176150 上传时间:2023-05-02 格式:DOCX 页数:10 大小:18.70KB
下载 相关 举报
用C语言实现对FOXPRO程序的加密.docx_第1页
第1页 / 共10页
用C语言实现对FOXPRO程序的加密.docx_第2页
第2页 / 共10页
用C语言实现对FOXPRO程序的加密.docx_第3页
第3页 / 共10页
用C语言实现对FOXPRO程序的加密.docx_第4页
第4页 / 共10页
用C语言实现对FOXPRO程序的加密.docx_第5页
第5页 / 共10页
用C语言实现对FOXPRO程序的加密.docx_第6页
第6页 / 共10页
用C语言实现对FOXPRO程序的加密.docx_第7页
第7页 / 共10页
用C语言实现对FOXPRO程序的加密.docx_第8页
第8页 / 共10页
用C语言实现对FOXPRO程序的加密.docx_第9页
第9页 / 共10页
用C语言实现对FOXPRO程序的加密.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

用C语言实现对FOXPRO程序的加密.docx

《用C语言实现对FOXPRO程序的加密.docx》由会员分享,可在线阅读,更多相关《用C语言实现对FOXPRO程序的加密.docx(10页珍藏版)》请在冰点文库上搜索。

用C语言实现对FOXPRO程序的加密.docx

用C语言实现对FOXPRO程序的加密

用C语言实现对FOXPRO程序的加密

杨懂峰‘,王绍军2,谭学元3

<1.深圳市城市交通规划研究中心,518031;2.湖南华南光电仪器厂,415105

3.北京科技大学信息工程学院,100083)

摘要:

文章提出了FOXPRO程序加密的一种实用方法,具有较高的安全性,能防

止程序被盗、拷贝·、破密。

关卜键词:

FOXPRO;加密;解密;安全性

0概述

利用FOXPRO开发的管理系统保密性

较差。

开发人员在开发完成应用程序之后,对

防止程序被盗、拷贝、破密等方面往往大费周

折。

常规做法是在主程序或相关的程序中嵌

人口令识别程序,其方法固然可行,但对于有

一般计算机操作经验的人员来说,又显得软

弱无力。

本文就利用C语言实现对FOXPRO

程序加密谈一谈看法。

当用FOXPRO开发的程序运行正确

后,我们可利用FOXPRO本身提供的功能

统一进行编译,形成一个“EXE”文件,然后用

C语言对其文件进行全文加密。

即用自己定

义的一组序列字符与文件进行加、减、与、或

操作,形成加密文件。

件,这样就达到了保密的目的。

因而最后交给

用户的有三个文件。

它们是解密文件、已进行

加密处理的文件、组装运行执行文件。

各个应

用程序的原文件和调用方式如下所述:

加密:

(文件名是CCI.Z.C)

UdefineNULL0

#include(stdio.h)

#include(stdlib.h)

#include(process.h)

#include(io.h)

staticintDW[7]={8,5,9,1,3,8,6);

//要进行加密的自定义的序列

main(intargc.char`argv[])

{FILE‘fp。

’fl;

if((fp=fopen(argv[1]."rb"))==NULL)

//要进行加密的原文件

igotoxy(20,8);

print'f('‘原文件不存在!

加密不能进行,请退

1加密方法

具体的操作方法如下:

首先,把FOXPRO的程序调试好,形成

FOXPRO的“EXE”可执行文件(如

FOXB.EXE),然后对这个文件进行加密,变

为加密文件(FOXB.DAT),同时设置一个解

密程序(文件名为CCZI_.EXE),可以对已加

密的文件进行解密。

再用C语言开发一个组

装运行程序,把我们的解密过程、程序执行过

程和删除解密程序的过程形成一个整体文

出⋯”):

exit(0);

if(fl=fopen(argv[2],"wb"))==NULL)

刀加密后的文件

{gotoxy(20,8);

printf(”形成新文件失败!

不能工作请退出

⋯,‘);

exit(0);

intk;charch,c;k=o;

while(!

feof(fp))

{if(ki6)k=0:

c=fgetc(fp):

//加密处理

、h=c+T)W[k];

收稿日期:

2的。

一11---22

.34.

《电脑与信息技术ii2001年第1期

fputc(ch_fl);

fclose(fp);fclose

k十+;}

(fl);}

调用方式:

CCLZFOXB.EXEFOXB.DAT

"FOXB.EXE":

FOXPRO的执行文件

"FOXB.DAT":

加密后的文件

2解密方法

解密:

(文件名是:

CCZ1..C

#defineNULL0

#include(stdio.h)

#include(stdlib.h)

#include(process.h)

#include(io.h)

staticintDW[7]={8,5,9,1,3,8,6);

刀解密的序列必须与加密序列相同

main(intargc,char'argv[])

(FILE'fp,‘fl;

if(Up=fopen(argv[1],"rb"))==NULL)

//要进行解密的数据文件

(gotoxy(20.8);

printf“数据文件不存在卫加密不能进行,请

退出⋯”);

exit(0);}

if((fl=fopen(argv[2],"wb"))==NULL)

刀解密后的文件

(gotoxy(20,8);

printf”形成新文件失败I不能工作请退出

⋯”);

exit(O);〕

intk;charch,c;k=o;

while!

feof(fp))

(if(k)6)k=0;

/解密处理过程正与加密过程相反

#include(io.h)

voidWIN(intsx,intsy,intex.intey,intbk,

intcolor)

(window(sx,sy,ex,ey);

textbackground(bk);

clrscr();

textcolor(color);)

main)

(in(k;

WIN(0,1.80,25,1,12);

gotoxy(20,8);

printf("系统正在进行初始化,请等待⋯“);

k=system(”CCZLFOXB.DATFOXGL.

EXE");//解密过程

k=system("FOXPROFOXGL.EXE");

刀调用FOXPRO程序

k=system("DELFOXGL.EXE");

刀删除解密后的文件

}

调用方法:

MAIN

这个文件是我们移交给用户的主执行文件:

户只要在命令提示符下打人MAIN.EXE就可完成

解密、运行、删除等操作。

制作安装盘:

(文件名INSTALL.C)

include(stdio.

include(stdlib.

h)

h)

##

c=fgetcUp);

fputc(ch.fI);

ch二c一DW[k];

k-l-+;}

fclose(fp);Hose(fl);}

调用方式:

CCZLFOXB.DAT

FOXGI-EXE

"FOXB.DAT":

己加密的文件

"FOXGL.EXE":

解密后的FOXPRO执行文件

主调文件:

(文件名MAIN.C)

#include(stdio.h)

#include(stdlib.h》

#include(process.h、

#include(process.h)

#include(io.h)

voidWIN(intsx,intsy,intex,intey,intbk,

intcolor)

(window(sx,sy,ex,ey);

textbackground(6k);

clrscr();

textcolor(color);}

main()

(intk;

WIN(0.1,80,25,1,12);

gotoxy(20,8);

k=system("c:

”);‘

k=system("mdc:

\馆I");

k=system("mdc:

\准1\\dbf");

k=system("copya:

\\main.exec:

\\gl");

k二system("copya:

\\clzl.exec:

\馆1");

k=system("copya:

\\foxb.datc:

\\g1_);

k=system("copya:

\\readme.exec:

\\g1_);

《电脑与信息技术》2001年第1期·35·

k=system("a:

\\arjea:

\\dbf.arjc:

\\gl\

dbf");

调用方法:

A:

INSTALL

这种操作的前提是把要移交给用户使用

的三个文件和操作说明文件存放在A盘根

目录下,把数据库文件存放在A盘的DBF

目录下。

给用户安装时只要使用INSTALL

就可完成整个程序的安装运行。

3结束语

通过以上加密过程形成的加密文件是任

何反编辑的软件不能进行反编辑的,若有人

要对其进行破密也非三言二语就能达到目

的,从而达到对软件的一种保护。

但同时我们

也应该知道,这种加密文件是不能直接运行

的,在运行时需要解密,解密的过程是加密过

程的反向操作,运行完毕之后再删除这个文

件,从而达到保密目的。

上述的加密程序不仅

适应FOXPRO的程序,而且适用于对数据

库加密和其它软件的加密,可以给用户开发

程序形成一种安全保护。

上述操作的4个C

语言程序是用TC2.0编写,FOXPRO程序

是用FOXPROFORDOS2.5编写,均已运

行通过。

参考文献:

[1]Foxpro2.6语言详解.学苑出版社,1994.

[2]VisualC十+使用速成.清华大学出版社.1996.

(上接第17页)

4LNX与UCI的区别

LNX和UCI都是MATRIXx

表3

部程序接口。

但在使用过程中,两种机制的使

用方法不同、程序调用的出发点不同、Xmath

在调用过程中所扮演的角色也不同,从表3

提供的外可看出这两种接口机制的区别。

LNX与UCI的特征比较

比较

数据结构

函数

创建

运行

UCI启动Xmath;LNX被Xmath启动

使用相同的数据结构—externType

UCI:

必须使用函数XmathStart和XmathStop;一定不能使用函数XmathMain

LNX:

必须使用函数XmathMain:

一定不能使用函数XmathStart和XmathStop

用户程序必须包括头文件xmathlib.h;必须连人Xmath.lib

UCI:

利用命令一callprogram-name开始调用Xmath

LNX:

LNX程序可以像其它MatliScrip:

函数一样使用

5结论

LNX和UCI技术很好地实现了专业化

仿真软件与通用编程语言的无缝联接。

这种

接口技术既是众多专业化软件拓展市场的一

种手段,也是软件发展的趋势。

不过,LNX和

Uci的接口技术仍嫌复杂,还应进一步简

化。

对用户来说,简单实用才是他们选择的标

准。

参考文献:

仁1]ISI.MATRIXxVersion6.XDocument.Integrated

[21

仁3]

谭浩强.C程序设计.清华大学出版社.1996.

李薇.徐国标.OpenGL人门与提高.西南交通大

学出版社.1998.

[4]SunZhaowei.XuGuodong.

Theintegratedsystemfor

simulationandevaluation

LinXiaohui.CanXibin

design.

ofthe

AdvancesinEngineeringSoftware.

analyse.system

smallsatellite.

2000(31):

437-

443.

['S」E.Bfernandez.JieWu.andHaifengQian.A

COMBINEDFUNCTIONALANDOBJECT

ORIENTAPPROACHTOSOFTWAREDESIGN

InternationalJournalof(

Applications.2000.22

(2):

,omputers

System.

36.

Inc.1998.

《电脑与信息技术》2001年第I期__

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2