Pascal/Turbo Pascal - sentencia de un password

 
Vista:

sentencia de un password

Publicado por yeni (9 intervenciones) el 21/03/2009 01:37:52
Cual es la funcion o sentencia en turbo pascal para windows para capturar una contraseña o password , pero q a medida q el usuario la digite aparesca un * para mantere la clave oculta????
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:sentencia de un password

Publicado por Miguel (159 intervenciones) el 21/03/2009 10:02:14
No conozco ninguna funcion o sentencia que lo haga automaticamente, lo puedes hacer tu a esa funcion. Esto es lo que se me ocurre a las seis de la mañana, al menos funciona... Muestra asteriscos mientras se escribe, y en una variable de tipo cadena se guarda la pass. Se ingresan caracteres hasta que se oprime el "enter", pero deberias hacer un control sobre las demas teclas que no son alfanumericas. Te he agregado para ayudarte con el otro problema que tienes.

PROCEDURE CapturarPass (VAR pass : STRING);
VAR
car : CHAR;
BEGIN
Write('digite su clave: ');
car:=READKEY;
WHILE car<>#13 DO
BEGIN
WRITE('*');
pass:=pass+car;
car:=READKEY;
END;
END;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:sentencia de un password

Publicado por Dani (94 intervenciones) el 23/03/2009 20:22:02
- Debes inicializar la cadena antes de empezar a pedir caracteres.

- ¿Has tenido en cuenta que el usuario puede equivocarse y borrar un carácter?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:sentencia de un password

Publicado por yeni (9 intervenciones) el 23/03/2009 20:42:28
Gracias ... tu ayuda es buena

pero aun no me funciona porq necesito que me compare la contraseña con la q le asigno yo , es decir:

para que entre al programa primero le pido que digite la contraseña
--- el usuario la digita => pass
... comparo la contraseña con la que asigne en este caso seria ' cont=2002'
if pass = cont => entra al programa

utilice un if y nada , no me funciona...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:sentencia de un password

Publicado por yeni (9 intervenciones) el 23/03/2009 20:43:26
Gracias ... tu ayuda es buena

pero aun no me funciona porq necesito que me compare la contraseña con la q le asigno yo , es decir:

para que entre al programa primero le pido que digite la contraseña
--- el usuario la digita => pass
... comparo la contraseña con la que asigne en este caso seria ' cont=2002'
if pass = cont => entra al programa

utilice un if y nada , no me funciona...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:sentencia de un password

Publicado por Miguel (159 intervenciones) el 23/03/2009 21:05:36
A ver como lo pusiste?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:sentencia de un password

Publicado por yeni (9 intervenciones) el 23/03/2009 22:18:14
var car: char; pass,cla: string[10];

cla:='2009'; {esta es la clave que debe digitar para q entre}

car:=READKEY;
while car<>#13 DO
begin
write('*');
pass:=pass+car;
car:=READKEY;
Write('digite su clave: ');
if cla= pass then
begin
write('clave correcta');
end;
end;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:sentencia de un password

Publicado por Miguel (159 intervenciones) el 23/03/2009 23:17:42
Mira yeni, tienes un error feo, esta en el ciclo WHILE.

car:=READKEY;
while car<>#13 DO
{ inicia aca }begin
write('*');
pass:=pass+car;
car:=READKEY;
Write('digite su clave: ');
if cla= pass then
begin { no hace falta el begin si se ejecuta una sola accion , de todas formas no incide en el resultado}
write('clave correcta');
end;
{ termina aca } end;

Entonces fijate lo que sucede, ingresa un caracter y compara con tu pass, es decir no es lo indicado. Mira aca te paso todo el codigo, pero OJO esto esta hecho en 5 minutos, no quiere decir que esto este listo para entregarlos, lo mencione antes y dani lo recalco, hay muchas condiciones que no son tomadas en este ejemplo que presento, es cuestion de que tu lo mejores, yo no lo entregaria para nada asi, es solo para que te des una idea.

PROGRAM prueba;
USES CRT;
CONST
clave = '2009';
VAR
cad : STRING;
PROCEDURE CapturarPass (VAR pass : STRING);
VAR
car : CHAR;
BEGIN
Write('digite su clave: ');
car:=READKEY;
WHILE car<>#13 DO
BEGIN
WRITE('*');
pass:=pass+car;
car:=READKEY;
END;
END;

PROCEDURE CompararPass (VAR pass : STRING);
BEGIN
CLRSCR;
IF clave=pass
THEN
WRITELN('Clave Correcta')
ELSE
WRITELN('Clave Incorrecta');
END;

BEGIN
CapturarPass(cad);
CompararPass(cad);
READKEY;
END.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:sentencia de un password

Publicado por yeni (9 intervenciones) el 24/03/2009 00:02:58
NO es necesario declarar pass como un vector???
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:sentencia de un password

Publicado por Miguel (159 intervenciones) el 24/03/2009 02:33:09
Si tienes que hacerlo con arreglos hazlo con arreglos, como tu no dijiste que tipo de datos debias manejar opte por cadena (arreglo de caracteres), fijate que funciona correctamente la insercion de caracteres, se agregan los que se deben agregar!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:sentencia de un password

Publicado por yeni (9 intervenciones) el 24/03/2009 00:09:44
Muchas gracias por todo.... disculpen tanta molestia :)
............................ :) .......................
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:sentencia de un password

Publicado por yeni (9 intervenciones) el 25/03/2009 06:33:56
me podrian hacer el favor de ayudarme en otro detalle....

lo q sucede es que ultilizo el password para entrar a la opcion 1 de un menu, TODO BIEN HASTA AHI ...salgo de la opcion 1 normalmente , pero cuando kiero entrar a la opcion 1 otra vez , me sale el mensaje de CONTRASEÑA INCORRECTA...

Es decir que solo funciona para entrar una sola vez a esa opcion, me podrian ayudar a q eso no pac , necesito q entre cuantas veces el usuario kiera
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:sentencia de un password

Publicado por Miguel (159 intervenciones) el 25/03/2009 20:50:37
Yeni siempre pone el codigo, la mayoria de las veces es problema en el codigo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar