Cómo escribir un programa criptográfico usando 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 stdio; .hgt;
#include lt; string.hgt;
#define PSDLEN 6
void inputPsd(char *str) /*entrada de proceso*/
{
int i
for(i = 0; i lt; PSDLEN; i )
{
mientras(1)
{
str[i] = getch();
if(str[i] == '\b') /*Procesar la tecla de retroceso* /
{
i--;
if(i lt; 0)
{
i = 0;
}
más
{
printf("\b \b") ;
}
continuar;
}
else if(str[i] == '\r') /*Proceso la tecla Intro*/ p>
{
continuar
}
más
{
;printf("* ");
descanso
}
}
}
str[i] = '\ 0';
printf("\n");
}
int checkFirst() /*Compruebe si es la primera vez que lo uso*/ p>
{
ARCHIVO *fp;
if((fp = fopen("psd.dat", "rb") ) == NULL)
{
devuelve 1;
}
fclose(fp); return 0;
}
void firstUse() /*Necesitas ingresar una contraseña por primera vez*/
{
ARCHIVO *fp;
int i;
> char passwd[PSDLEN 1];
char checkPsd[PSDLEN 1]
if((fp = fopen("psd.dat", "wb")) == NULL )
{
printf("¡Error al crear contraseña!\n");
exit(1); p>
while(1)
{
printf("Ingrese la contraseña: "
inputPsd(contraseña
);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)< / p>
{
puts("Error al abrir psd.dat");
exit(1); p > fread(contraseña, tamañode(char), PSDLEN, fp);
fclose(fp>
contraseña[PSDLEN] = '\0'; p > printf("Ingrese la contraseña para iniciar sesión");
while(num)
{
printf("tienes d oportunidades de llorar:\ n ", num);
inputPsd(checkPsd);
if(!strcmp(passwd, checkPsd))
{
break ;
}
puts("\nerror de contraseña,
Por favor ingrese nuevamente");
num--;
}
if(!num)
{
puts("Presione cualquier tecla para salir...");
getch();
exit(0); >
else
{
puts("\n--------\n¡Bienvenido!\n--------\n") ;
}
}
void main()
{
if(checkFirst())
{
primerUso();
}
else
iniciar sesión(); p> getch();
}