闪耀 发表于 2015-1-4 21:40

c语音 设置软件密码,防止他人使用

软件发布后,如果不希望未经授权的用户使用,可以设置软件密码,启动软件后,必须正确输入密码才能进行后续操作。

作为教学演示,这里简单地将密码赋值给一个变量,编译后不能更改,如果想更改,必须重新编译。

用户有3次输入密码的机会,3次输入错误,软件自动退出。通过for循环,连续3次读取用户输入的密码,并与初始密码进行比较,相同则校验通过,否则校验失败。

请看下面的代码:
[*]#include <stdio.h>
[*]#include <stdlib.h>
[*]#include <conio.h>
[*]
[*]int checkPwd();
[*]void myExit(char *msg);
[*]
[*]intpassword=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);
[*]}


运行结果:

520Kelly 发表于 2015-1-4 21:50

可以爆破过验证吗?

闪耀 发表于 2015-1-4 21:56

520Kelly 发表于 2015-1-4 21:50
可以爆破过验证吗?

这个我没试过你可以试一试{:5_116:}

Scar-疤痕 发表于 2015-1-4 22:00

学习下,谢谢了

骚年 发表于 2015-1-4 23:48

支持楼主分享

a747969767 发表于 2015-12-1 00:30

这个还不错哟,又学到东西

1040321413 发表于 2018-9-4 21:33

感谢楼主分享,学习中

别管我了行 发表于 2022-2-27 03:34

zg2600 发表于 2022-6-15 12:51

[吾爱汇编论坛52HB.COM]-做的不错哦,楼主加油,期待更好的作品!

冷亦飞 发表于 2022-10-7 00:29

谢谢分享
页: [1] 2
查看完整版本: c语音 设置软件密码,防止他人使用