c语言设计密码检测程序?

c语言设计密码检测程序?,第1张

#include <stdio.h>

#define UC (1U<<1) // upper case

#define LC (1U<<2) // lower case

#define NUM (1U<<3) // 0-9

#define ALL (UC|LC|NUM)

int check(const char pass1[], const char pass2[])

{

const char *p = &pass1[0]

unsigned int flag = 0

if (strlen(pass1) <6 || strlen(pass1) >8)

{

printf("password length is 6 to 8.\n")

return 1

}

if (strcmp(pass1, pass2))

{

printf("the tow passwords are diffrence.\n")

return 2

}

while (*p)

{

if (*p >= 'a' &&*p <= 'z') flag |= LC

else if (*p >= 'A' &&*p <= 'Z') flag |= UC

else if (*p >= '0' &&*p <= '9') flag |= NUM

else

{

printf("in valid charactor: %c.\n", *p)

return 3

}

++p

}

if (flag == ALL) return 0

if ((flag &UC) == 0)

{

printf("lack of uppercase.\n")

}

if ((flag &LC) == 0)

{

printf("lack of lowercase.\n")

}

if ((flag &NUM) == 0)

{

printf("lack of number.\n")

}

return -1

}

int main(int argc, char *argv[])

{

char pass1[100]

char pass2[100]

do {

printf("input password:")

scanf("%s", pass1)

printf("repeat password:")

scanf("%s", pass2)

} while (check(pass1, pass2) != 0)

return 0

}

我有一个C++的运行程序需要输入密码的程序,输入正确可以修改密码,密码保存在文件中是加密的。至于注册之类的可以再加上一个文件保存用户名和密码,再在程序里加上功能选择的代码,注册时扫描一遍文件中的名字,如果存在就提示,否则就OK。。。。

#include<iostream>

#include<fstream>// 文件输入输出流

#define PASSLEN 16

#define PASS 3123 //这个东西用来加密密码s

#define infile "XMAN.txt" //保存密码的文件s

using namespace std

bool exist() //判断密码文件是否存在 不存在表示未设置过密码

{

ifstream fin(infile)//文件输入输出流定义 ifstream +流的名字 用于从文件中读入数据

char temp[PASSLEN]

temp[0]=0

fin>>temp

if(temp[0]==0) return false

else

return true

}

void changepass()

{

char pass[PASSLEN]

ofstream fout(infile)

cout<<"Please Set New Password:"

cin>>pass

for(int i=0i<PASSLENi++)

if(pass[i]!=0)

fout<<pass[i]+PASS<<endl

cout<<"Pass Set Successfully !"<<endl

}

int main()

{

char input[PASSLEN]

bool isok=true//判断密码是否吻合

memset(input,0,sizeof(input))

if(!exist()) //密码文件不存在就重新设置密码

{changepass()return 0}

ifstream fin(infile)

cout<<"Please Input The Password:"

cin>>input//从键盘和文件分别读入密码

int len=strlen(input)

//cout<<lensystem("pause")

for(int i=0i<leni++) //这个循环用来判断密码是否吻合

{

int pass

fin>>pass

pass-=PASS

if(input[i]!=char(pass)) //一旦不相同就将 isok 设置为 false 同时推出循环

{

cout<<i<<" "<<passsystem("pause")

isok=false

break

}

}

if(isok) //如果密码吻合

{

cout<<"PASS CHECK CORRECT !"<<endl

int n

cout<<"1 FOR CHANGE PASS OTHER NUMBER FOR CONTIUNE:"

cin>>n

if(n==1)

changepass()

//这是接下来你要加的代码了

}

system("pause")

return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12167606.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存