struct e
{
char a[10]
char b[10]
}z
int main()
{ int t=0
char s[10],d[10]
FILE *p
void as()
if ((p=fopen("m.txt","r+"))==NULL)
{
p=fopen("m.txt","w+")
t=1
}
if(t==1)
{
printf("当前没有任何用户态型\n")
printf("请新建用户名: ")
scanf("%s",s)
printf("为用户设置密码: ")
scanf("%s",d)
strcpy(z.a,s)
strcpy(z.b,d)
fprintf(p,"%s %s",z.a,z.b)
fclose(p)
}
if(t==0)
{
printf("请输入用户名: ")
scanf("%s",s)
fscanf(p,"%s %s",z.a,z.b)
fclose(p)
if (!strcmp(z.a,s))
{
printf("帆兄猜请输入密码:"尘启)
scanf("%s",d)getchar()
if(!strcmp(z.b,d))
{ char i
printf("是否要修改密码?(输入y修改,n退出!)")
scanf("%c",&i)
if(i=='y')
{
printf("请输入修改密码:")
scanf("%s",z.b)
p=fopen("m.txt","w+")
fprintf(p,"%s %s",z.a,z.b)
fclose(p)
printf("修改成功!")
}
}
else printf("密码错误!")
}
else printf("用户名错误")
fclose(p)
}
}
代码:
#include <stdio.h>#include <string.h>
#define M 50
#define N 128
// 系统保存谨慎键的账号和密码
char name[M]
char pass[N]
char cryname[M]
char crypass[N]
// 简单加祥巧密函数
char * crypt(char s[]){
int i
char cry[128]={'\0'}
for(i=0s[i]i++){
cry[i]=s[i]+i+5 // 自定义加密
}
cry[i]='\0'
return cry
}
// 登录验证
int main(){
// 用户输入的账号和密码
char getname[M]
char getpass[N]
char crygetname[M]
char crygetpass[N]
char newpass[N]
int ch
//
printf("===程序初始化===")
printf("\n======初始化账号:")
gets(name)
strcpy(cryname,crypt(name))
printf("======初始化密码:")
gets(pass)
strcpy(crypass,crypt(pass))
printf("======初始化为:帐号:%s,%s密码:孝乱%s,%s",name,cryname,pass,crypass)
printf("\n\n===运行程序===\n")
do{
printf("\n======账号和密码验证======")
printf("\n======请输入账号:")
gets(getname)
strcpy(crygetname,crypt(getname))
printf("======请输入密码:")
gets(getpass)
strcpy(crygetpass,crypt(getpass))
printf("======初始化为:帐号:%s,%s密码:%s,%s",getname,crygetname,getpass,crygetpass)
}while(strcmp(cryname,crypt(getname)) && strcmp(crypass,crypt(getpass)))
printf("\n\n======验证通过=====")
do{
printf("\n\n===请输入数字选择功能===")
printf("\n======1、查看账号和密码")
printf("\n======2、修改密码")
printf("\n======0、关闭程序")
printf("\n\n======请输入数字:")
scanf("%d",&ch)
switch(ch){
case 1:
printf("\n\n========加密前的账号和密码:")
printf("\n===========账号:%s,密码:%s",name,pass)
printf("\n\n========加密后的账号和密码:")
printf("\n===========账号:%s,密码:%s",cryname,crypass)
break
case 2:
printf("\n\n========请输入新密码:")
scanf("%s",&newpass)
strcpy(pass,newpass) //修改原始密码
strcpy(crypass,crypt(newpass)) //修改原始密码
printf("\n\n===========密码已修改,新密码为%s,加密后为:%s",pass,crypass)
break
}
}while(ch!=0)
return 0
}
运行:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)