Ir al contenido


Foto

Como crear contraseñar para los usuarios de mi soft


  • Por favor identifícate para responder
7 respuestas en este tema

#1 lsedr

lsedr

    Advanced Member

  • Miembros
  • PipPipPip
  • 272 mensajes

Escrito 23 noviembre 2010 - 04:16

saludos C.

Porfavor, demen una idea de cómo crear contraseñas para los usuarios de este pequeño software que estoy desarrollando.

Al inicio del soft se le pide al usuario que indique su NOMBRE y una CONTRASEÑA.
Esos datos se guardan en una tabla de la BD, y si el usuario no esta registrado, se le pide que se registre en el sistema para poder usarlo... bueno, es el uso clasico de los sistemas....

Pero mi problema es que la contraseña es visivle y desearia que se muestre como asteriscos ( ******** ) para que otro usuario no conosca la contraseña de los que ya estan registrados en la BD..

aqui una imagen..

Archivos adjuntos


  • 0

#2 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.092 mensajes
  • LocationRepública Dominicana

Escrito 23 noviembre 2010 - 04:28

Saludos.

Debes poner un asterisco (*) en la propiedad PasswordChar del componente TEdit.
  • 0

#3 lsedr

lsedr

    Advanced Member

  • Miembros
  • PipPipPip
  • 272 mensajes

Escrito 23 noviembre 2010 - 05:04

Y cómo le indico al Boton 'ENTRAR' que me busque el Nombre y la Contraseña
del Usuario que estan en esta tabla:



delphi
  1. DataModule1.ADOTable7.




Y que si no se encuentra muestre


delphi
  1. showmessage('El Usuario no existe');



La idea es que se haga una busqueda en toda la Tabla para buscar el Usuario indicado con su contraseña ...


aqui la imagen de ejemplo...

Gracias,
Saudos C

Archivos adjuntos


  • 0

#4 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 23 noviembre 2010 - 05:11

Además de lo señalado por Rolphy, déjame decirte que el sistema no debe generar ni crear ninguna constraseña. Se supone que es el usuario el que la crea.

Distinto es que el sistema genere una clave temporal o provisoria y le pida (aunque a mi modo de ver debería ser más una obligación) al usuario en la primera ejecución o inicio de sesión que la cambie por una propia. Para esas claves temporales puede bastar algo tan simple como valerse del uso de la función random y asociar al número alguna letra.

Una idea simple:


delphi
  1. const
  2. CARACTERES = 'abcdefghijklmnopkrstuvwxyz1234567890';
  3.  
  4. var
  5. i: integer;
  6. pass: string;
  7.  
  8. begin
  9. for i := 1 to LongitudContrasenia do
  10. pass := pass + CARACTERES[Random(Length(CARACTERES)) + 1];



Al finalizar en pass se tiene una "contraseña" de una longitud dada con los caracteres permitidos y definidos en la constante CARACTERES.

Otra alternativa que se estila en algunos sitios es la de tomar el nombre de pila del usuario más los 3 últimos (o primeros) números de su DNI. Luego tomar su fecha de nacimiento y hacer una especie de "mezcla" entre ellos.

Por último: en una base de datos nunca se debería almacenar una contraseña. Ni siquiera cifrada... Que de hecho no se cifran. Lo que se almacena en las DB es un hash que representa a la contraseña. De ese modo nunca es posible extraer o recuperar la contraseña desde su valor Hash (los algoritmos hash o de reducción no son reversibles). Para identificar al usuario se calcula el hash de lo que ingresa y si resulta ser igual al que está guardado entonces se le habilita el paso.

Saludos,
  • 0

#5 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 23 noviembre 2010 - 05:20

¿Isedr si te digo que tu mismo te das la respuesta no te molesta?  ;)

Digo... no se... ¿Lanzar una consulta SELECT con una cláusula WHERE y luego verificar si la consulta regresa UN registro?  ^o| ;)

Saludos,
  • 0

#6 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 23 noviembre 2010 - 05:31

Aqui un ejemplo para que veas

http://www.delphiacc...2.msg931#msg931
  • 0

#7 lsedr

lsedr

    Advanced Member

  • Miembros
  • PipPipPip
  • 272 mensajes

Escrito 23 noviembre 2010 - 05:41

¿Isedr si te digo que tu mismo te das la respuesta no te molesta?  ;)

Digo... no se... ¿Lanzar una consulta SELECT con una cláusula WHERE y luego verificar si la consulta regresa UN registro?  ^o| ;)

Saludos,


eso es lo que quiero que sea el usuario que escriba la contraseña y que cuando el sistema inicie, el usuario pueda identificarse y entrar...

  • 0

#8 lsedr

lsedr

    Advanced Member

  • Miembros
  • PipPipPip
  • 272 mensajes

Escrito 23 noviembre 2010 - 05:42

Aqui un ejemplo para que veas

http://www.delphiacc...sg931#msg931[/]


estudiando...
  • 0




IP.Board spam blocked by CleanTalk.