[ Foro de Pascal ]
En esta tarea, implementaremos un sistema simplificado de registro y autenticación de un usuario. El trabajo del estudiante consiste en la implementación de
algunos subprogramas para computar el código de hash y la autenticación de
usuarios.
Subprogramas
Se deben implementar los siguientes subprogramas:
• Procedimiento readAndHashLn. Lee de la entrada estándar una cadena de
caracteres terminada en '.', computa la función de hash que describimos
en la introducción para la cadena (sin contar el '.') usando los parámetros
semilla, paso y N, retorna en el parámetro de salida codigo su resultado
y consume el resto de la entrada estándar hasta el fin de línea (inclusive).
El tipo Natural está definido en definiciones.pas y representa a los
números naturales.
procedure readAndHashLn(semilla, paso, N : Natural;
var codigo : Natural);
• Procedimiento login. Recibe como parámetros de entrada un código
de hash codigo y un número de intentos intentos. Realiza intentos de
login hasta que sea exitoso o se cumpla el máximo de intentos. En
cada intento se lee una contraseña y computa un código de hash usando
la función readAndHashLn usando las constantes SEMILLADJB, PASODJB y
NDJB (definidas en definiciones.pas) y se compara su resultado con el
codigo. En cada intento fallido se muestra en la salida la información del
fallo, usando el procedimiento writeFallo definido en definiciones.pas.
El procedimiento retorna en el parámetro de salida ok si el login fue exitoso.
procedure login(codigo : Natural; intentos : integer;
var ok : boolean);
Ejemplos
Los siguientes son ejemplos de ejecución del programa principal.
Registro y login exitosos:
Registro de Usuario
Ingrese su contraseña: qwerty.
Hash: 404273943
Login de Usuario
Ingrese su contraseña, tiene hasta 3 intentos.
qwerty.
Login realizado correctamente.
Registro y login exitoso luego de un fallo:
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)