设置软件密码,防止他人使用
软件发布后,如果不希望未经授权的用户使用,可以设置软件密码,启动软件后,必须正确输入密码才能进行后续操作。
作为教学演示,这里简单地将密码赋值给一个变量,编译后不能更改,如果想更改,必须重新编译。
用户有3次输入密码的机会,3次输入错误,软件自动退出。通过for循环,连续3次读取用户输入的密码,并与初始密码进行比较,相同则校验通过,否则校验失败。
请看下面的代码:
作为教学演示,这里简单地将密码赋值给一个变量,编译后不能更改,如果想更改,必须重新编译。
用户有3次输入密码的机会,3次输入错误,软件自动退出。通过for循环,连续3次读取用户输入的密码,并与初始密码进行比较,相同则校验通过,否则校验失败。
请看下面的代码:
#include <stdio.h> #include <stdlib.h> #include <conio.h> int checkPwd(); void myExit(char *msg); int password=123456; // 软件初始密码 int main(){ if(!checkPwd()){ myExit("抱歉,3次输入密码错误。按任意键退出程序...\n"); } myExit("恭喜你,密码检验成功。按任意键退出程序...\n"); return 0; } // 校验密码 // 返回 0 表示校验失败,返回 1 表示校验成功 int checkPwd(){ int pwd; //用户输入的密码 int trytimes; // 用户尝试输入密码的次数 printf("程序设置了密码,验证通过后才能使用。请输入6位数字密码:"); // 可以输入三次 for(trytimes=1; trytimes<=3; trytimes++){ scanf("%d",&pwd); fflush(stdin); if(pwd==password){ return 1; break; }else if(trytimes==3){ return 0; }else{ printf("抱歉,密码错误,您还有%d次机会:", 3-trytimes); } } } // 自定义退出程序函数 // msg 为提示语 void myExit(char *msg){ printf("%s", msg); getch(); exit(1); }运行结果: