荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: jek (好好学习天天向上), 信区: Program
标  题: C语言口令保护程序
发信站: BBS 荔园晨风站 (Sat Mar 11 12:56:31 2000), 转信

C语言口令保护程序

  本程序可加到用户的源程序之前,起到加锁的作用。本程序的特点是:口令保密性强
(保存于文件KLK.CFG中,此文件名也可由用户重新命名),而且用户可随时修改口令。在
程序中当用户输入口令后,系统首先测试口令文件KLK.CFG是否存在(只有用户运行了修改
口令子函数后才会生成口令文件,否则系统只认默认口令88888888),若存在则从中取出
口令字,否则系统用默认口令与用户输入的口令进行较验。另外,修改口令子函数
changkl(),可在用户程序中调用,以修改口令文件中的口令字。
  本程序涉及到C语言函数getpass(*char),该函数从键盘读取8位字符并返回,且不
在屏幕上显示。我们正好利用这一函数功能进行输入口令。
   程序清单如下:

  #include
  #include
  void main()
  {char*password;
   char kl[9]=“88888888”;
   inti=0;
   FILE*fpl;
   window(1,1,80,25); /*屏幕背景清屏成蓝色*/
   textbackground(1);
   clrscr();
   window(17,10,58,13);/*开阴影窗口*/
   textbackground(0);
   clrscr();
   for(i=0;i<=2;i++)
  { window(16,9,56,12);
   textattr(14︳2<<4);
   clrscr();
   gotoxy(13,2);
   password=(char*)getpass("请输入系统口令:");
   textcolor(4);
   /*若口令文件KLK.CFG存在,则从中取出口令字*/
   if((fp=fopen("KLK.CFG","rb+"))!+NULL)
   { fseek(fp,O,SEEK_SET);
   fgets(kl,9,fp);
   fclose(fp);}
   if(i==2&&strcmp(password,kl)!+0)/*三次口令无
效退出*/
   { gotoxy(13,2);
   cputs("口令错误,退出!!");
   getch();exit(0);}
   if(stcmp(password,kl)!=0,
   { gotoxy(13,2);
   cputs("口令错误,重输!!");
   getch();}
   else
   break;
   }
   /*进入主程序体*/
   textbackground(1);
   window(1,1,80,25);
   clrscr();
   gotoxy(10,10);
   cputs("执行用户主体程序……按任意键进行更改口
令!");
   getch();
   changkl();/*用户程序中调用修改口令函数*/
  }
   changkl() /*修改口令子函数*/
  {char*klk;
   char buf[1];
   FILE*fp;
   window(17,16,58,19);/*开阴影窗口*/
   textbackground(0);
   clrscr();
   window(16,15,56,18);
   textattr(14︳4<<4);
   clrscr();
   gotoxy(8,4);
   cputs("请修改口令字,必须为八位字符");
   gotoxy(14,2);
   klk=(char*)getpass("请输入新口令:");
   gotoxy(14,2);
   textcolor(2);
   if(srlen(klk)!=8
   {cputs("口令字无效,返回!!");
   getxh();
   return;}
   cputs("口令修改成功!!");
   if((fp=fopen("KLK,CFG"."w"))!=null)/*保存口令到
文件KLK.CFG*/
   {fputs(klk,fp);
   buf[0]=0xia;
   fwrite(&buf[0],1,1,fp);
   fclose(fp); }
   getch();
   returm;
   }
   本程序在COMPAQ486/33微机上,DOS5.0操作系统、UCDOS3.1汉字系统及Turbo C2.0
语言下运行通过。

--
※ 来源:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: 192.168.1.118]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店