您的位置:

有关二方密码的c语言程序,c语言输入密码程序

本文目录一览:

有关二方密码的C语言程序

小错误比较多,逻辑不是很清晰。建议严格按照二方密码的定义来重写。

比如说:

oid rearrange(char arr[])//重新排序

{

/*按顺序排列字母*/

char new1[40];

int a,b=0,k,e=0,f=0,p;

for(a=0;arr[a]!='\0';a++)

{

new1[b]=arr[a]; //这是什么意思呢?看不懂,猜应该是new1[a]?

}

k=a+26;

for(b=a;b=k;b++)

{

new1[b+1]=new1[b]+1; //确认不越界?

}

如何用C语言编写密码程序

1、用一个字符数组来存密码

再用一个字符数组接收你的输入,然后用strcmp

来比较,如果返回0则密码是正确的

2、例程:

#include "stdio.h"

#include "string.h"

int main()

{

       char mima[100]="YuanShi888";

       char input[100]={0};

       printf("请输入密码:");

        gets(input);

       if(strcmp(mima,input)==0)

            printf("恭喜你,密码正确!\n");

       else

            printf("对不起,密码输入错误!\n");

  

}

一个两位纯数字密码破解程序怎么编,用C语言

1、数据范围小的密码可以使用穷举法。这里从00到99,当作字符来处理,需要两重循环。

2、例程:

char a,b,c='1',d='2'; //这里变量c,d表示密码的第一位和第二位。

char key[2];

for(a='0';a='9';a++){

        for(b='0';b='9';b++){

                key[0]=a;

                key[1]=b;        //这就是一个密码

                if(key[0]==c  key[1]==d) printf("密码是:%s",key);//找到密码并输出

        }

}

关于二次方程的C语言程序

这个问题很简单

#include stdio.h

#include math.h

void main()

{

float a,b,c,d;

float x1,x2;

scanf("%f %f %f",a,b,c);

d=b*b-4*a*c;

if(d0)

{

printf("on!\n");

}

else

if(d==0)

{

x1=(-b/(2*a));

printf("%f\n",x1);

}

else

if(d0)

{

x1=(-b+sqrt(d))/(2*a);

x2=(-b-sqrt(d))/(2*a);

printf("X1=%f\nX2=%f\n",x1,x2);

}

}

请大神帮我用C语言编译一有关于密码的程序。

#include stdio.h

#include stdlib.h

#include string.h

#include stdbool.h

#include windows.h

typedef struct

{

int x;

int y;

}PT_STRUCT;

typedef struct

{

char user[20];

char pw[20];

}USER_STRUCT;

PT_STRUCT pt;

bool LoginSuccess=false;

char CurrentUser[20]={'\0'};

int UserCount=0;

int LoginErrCount=0;

USER_STRUCT* pUser=NULL;

char WorkDir[100]={'\0'};

char DataFile[100]={'\0'};

void setxy(int x, int y)

{

   COORD coord = {x, y};

   SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);

}

void getxy()

{

HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);

    COORD coordScreen = {0, 0}; //光标位置

    CONSOLE_SCREEN_BUFFER_INFO csbi;

    if (GetConsoleScreenBufferInfo(hConsole, csbi))

    {

        pt.x=csbi.dwCursorPosition.X;

        pt.y=csbi.dwCursorPosition.Y;

    }

}

void input(char* buf)

{

int len=strlen(buf);

int c;

int i=0;

while(1)

{

c=getch();

if(c==8  i==0)

{

continue;

}

if(c==10 || c==13) break;

if(c==8  i0)

{

buf[i-1]='\0';

i--;

getxy();

setxy(pt.x-1,pt.y);

printf(" ");

setxy(pt.x-1,pt.y);

}

else if(i=0)

{

printf("*");

buf[i++]=c;

}

if(i=buf)

{

return;

}

}

}

void GetUserDataFromFile()

{

UserCount=GetPrivateProfileInt("USER","user_count",0,DataFile);

if(pUser!=NULL)

{

free(pUser);

}

pUser=(USER_STRUCT*)malloc(sizeof(USER_STRUCT)*(UserCount+1));

int i;

char ch[5];

for(i=0;iUserCount;i++)

{

memset(ch,'\0',5);

sprintf(ch,"%d",i+1);

GetPrivateProfileString(ch,"user","",pUser[i].user,20,DataFile);

GetPrivateProfileString(ch,"pw","",pUser[i].pw,20,DataFile);

}

}

void WriteDataToFile()

{

int i;

char t[5]={"\0"};

sprintf(t,"%d",UserCount);

WritePrivateProfileString("USER","user_count",t,DataFile);

for(i=0;iUserCount;i++)

{

sprintf(t,"%d",i+1);

WritePrivateProfileString(t,"user",pUser[i].user,DataFile);

WritePrivateProfileString(t,"pw",pUser[i].pw,DataFile);

}

GetUserDataFromFile();

}

bool login()

{

if(LoginSuccess==true)

{

printf("当前已有用户登录! 重新登录吗?(Y/N)");

char sel;

fflush(stdin);

scanf("%c",sel);

if(sel=='y' || sel=='Y')

{

LoginSuccess==false;

}

else

{

return false;

}

}

char user[20]={'\0'};

char pw[20]={'\0'};

printf("\nInput User: ");

fflush(stdin);

scanf("%s",user);

printf("\n\nInput Password: ");

fflush(stdin);

input(pw);

bool find=false;

int i;

for(i=0;iUserCount;i++)

{

if(strcmp(user,pUser[i].user)==0  strcmp(pw,pUser[i].pw)==0)

{

find=true;

LoginSuccess=true;

strcpy(CurrentUser,pUser[i].user);

break;

}

}

if(find==true)

{

return 1;

}

else

{

return 0;

}

}

bool regist(char* ErrBuf)

{

char user[20]={'\0'};

char pw1[20]={'\0'};

char pw2[20]={'\0'};

printf("\nInput User: ");

fflush(stdin);

scanf("%s",user);

int i;

for(i=0;iUserCount;i++)

{

if(strcmp(user,pUser[i].user)==0)

{

strcpy(ErrBuf,"User Repeat");

return false;

}

}

printf("\n\nInput Password: ");

fflush(stdin);

input(pw1);

printf("\n\nReInput Password: ");

fflush(stdin);

input(pw2);

if(strcmp(pw1,pw2)!=0)

{

strcpy(ErrBuf,"Password Differ");

return false;

}

strcpy(pUser[UserCount].user,user);

strcpy(pUser[UserCount].pw,pw1);

UserCount++;

return true;

}

int main()

{

_getcwd(WorkDir,100); //取得当前程序的绝对路径

strcpy(DataFile,WorkDir);

strcat(DataFile,"\\user.dat");

if(access(DataFile,0))

{

printf("\n用户数据文件不存在, 按任意键将创建文件");

getchar();

FILE* fp;

fp=fopen(DataFile,"wb");

int re=fputs("[USER]\r\nuser_count=0",fp);

if(re=0)

{

printf("\n用户数据文件创建成功!");

}

else

{

printf("\n用户数据文件创建失败!");

}

getchar();

fclose(fp);

}

GetUserDataFromFile();

while(1)

{

system("cls");

printf("已注册用户%d",UserCount);

if(LoginSuccess==true)

{

printf("     Logined User : %s",CurrentUser);

}

printf("\n\n\n-------------------------------");

printf("\n登录---1");

printf("\n注册---2");

printf("\n退出---3");

printf("\n-------------------------------");

printf("\nPlease Input 1-3 : ");

int sel;

bool re;

char ErrBuf[50]={'\0'};

fflush(stdin);

scanf("%d",sel);

if(sel1 || sel3)

{

printf("\n\nInput error!");

fflush(stdin);

getchar();

continue;

}

switch(sel)

{

case 1:

re=login();

if(re==true)

{

printf("\n\nLogin Success! Current User: %s",CurrentUser);

fflush(stdin);

getchar();

}

else

{

printf("\n\nLogin Fail!");

LoginErrCount++;

if(LoginErrCount=3)

{

printf("\n\nLogin Fail 3, Program will be exit!");

}

fflush(stdin);

getchar();

if(LoginErrCount=3)

{

exit(0);

}

}

break;

case 2:

memset(ErrBuf,'\0',50);

re=regist(ErrBuf);

if(re!=true)

{

printf("\n\n%s    Register Fail!",ErrBuf);

fflush(stdin);

getchar();

}

else

{

WriteDataToFile();

printf("\n\nRegister Success!");

fflush(stdin);

getchar();

}

break;

case 3:

exit(0);

break;

default:

break;

}

}

return 0;

}