📄 c_pasword.txt
字号:
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语言下运行通过。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -