当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>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;
    }

共2页 首页 上一页 1 2 下一页 尾页 跳转到
相关内容
赞助商链接