Red de conocimiento informático - Material del sitio web - ¿Cómo programar un programa de autenticación de contraseña de encendido en lenguaje C?

¿Cómo programar un programa de autenticación de contraseña de encendido en lenguaje C?

La contraseña se guarda en el archivo y la contraseña se lee del archivo, pero no se realiza tolerancia a fallas ni manejo de excepciones. Es solo como referencia

#include

#include

#define PSDLEN 6

void inputPsd(char *str) /*procesar entrada*/

{

int i;

for(i = 0; i < PSDLEN; i++)

{

mientras (1)

{

str[i] = getch();

if(str[i] == '\b') /*Proceso la tecla de retroceso*/

{

i--;

if(i < 0)

{

i = 0;

}

else

{

printf("\b \b");

}

continuar;

}

else if(str[i] == '\r') /*Procesar la tecla Enter* /

{

continuar;

}

más

{

printf ("*");

descanso;

}

}

}

str[i] = '\0';

printf("\n");

}

int checkFirst() /*Comprueba si es la primera vez que úsalo*/

{

ARCHIVO *fp;

if((fp = fopen("psd.dat", "rb")) == NULL)

{

devuelve 1;

}

fclose(fp);

devuelve 0;

}

void firstUse() /*Necesitas ingresar una contraseña por primera vez*/

{

ARCHIVO * fp;

int i;

char passwd[PSDLEN + 1];

char checkPsd[PSDLEN + 1];

si ((fp = engañar

n("psd.dat", "wb")) == NULL)

{

printf("¡Error al crear contraseña!\n");

exit(1);

}

while(1)

{

printf("Ingrese la contraseña:");

inputPsd(passwd);

printf("\nPor favor, ingrese la contraseña nuevamente:");

inputPsd(checkPsd);

if(!strcmp(passwd, checkPsd))

{

break;

}

printf("\n¡compruebe el error de contraseña! \n");

}

fwrite(contraseña, tamañode(char), PSDLEN, fp);

fclose(fp);

}

void login() /*Comprueba la contraseña e inicia sesión*/

{

ARCHIVO *fp;

int i, num = 3;

char passwd[PSDLEN + 1];

char checkPsd[PSDLEN + 1];

if((fp = fopen ("psd.dat", "rb")) == NULL)

{

puts("Abrir error psd.dat");

salir (1);

}

fread(contraseña, tamañode(char), PSDLEN, fp);

fclose(fp);

passwd[PSDLEN] = '\0';

printf("Ingrese la contraseña para iniciar sesión");

while(num)

{

printf("tienes %d posibilidades de llorar:\n", num);

inputPsd(checkPsd);

if(!strcmp(passwd, checkPsd))

{

break;

}

puts("\nerror de contraseña, introdúzcala de nuevo"); p>

num--;

}

if(!num)

{

puts("Presione cualquier tecla para salir...");

getch();

exit(0);

}

else

{

puts("\n--------\n¡Bienvenido!\n-------- \n");

}

}

void main()

{

if(checkFirst ())

{

primerUso();

}

más

iniciar sesión();

getch();

}