![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Hola,
A ver, porque creo que estamos liando las cosas, y no sólo con el tema de Oracle y Borland. Hasta donde yo llego, las contraseñas no se guardan cifradas, esto es, si entendemos por cifradas algo que podría llegar a descifrarse conociendo el algoritmo y la clave oportuna. SHA significa "Secure Hash algorithm", es decir, que no se trata de un algoritmo de cifrado (aunque reconozco que yo aquí estoy más perdido que un pavo en un garaje el día de navidad), pero es un algoritmo de "hashing". No es lo mismo. El primero se puede revertir, el segundo no. En mi experiencia, lo que se guarda en una base de datos no son las contraseñas de los usuarios en claro, ni si quiera cifradas, sino que lo que se guarda es un "hash" de las contraseñas, ni más, ni menos. De ese modo, ni siquiera el administrador del sistema puede conocer la contraseña de un usuario, en teoría. Ahora tú supón que tienes una tabla "users" con los campos "user_login" y "user_password". El usuario te proporciona su login y contraseña (en claro) y tú tienes que verificar si efectivamente es un usuario registrado o no lo es. La consulta SQL debería quedar tal que así:
¿Se comprende? Tú ya tienes la contraseña en claro: te la tiene que proporcionar el usuario. Y lo que tú haces es obtener el "hash" de esa contraseña en claro que te proporciona el usuario y buscar ese "hash" en la tabla de usuarios. Si el "hash" aparece, significa que la contraseña proporcionada es correcta, puesto que su "hash" coincide con el guardado en la base de datos. Otra cosa es lo que apunta la consulta SQL que he puesto arriba: habría que comprobar también el login de usuario, suponiendo que dos usuarios podrían tener la misma contraseña. Y acaso haya que tener otras cosas en cuenta en este sentido, pero, en todo caso, insisto, si lo que quieres es la contraseña en claro del usuario... este mismo te la da. Y además tiene que ser así, siempre que sólo guardes el "hash" de las contraseñas en la base de datos: tú no puedes deducir de un "hash" la contraseña correspondiente. Última edición por dec fecha: 31-12-2007 a las 01:08:42. |
|
#2
|
|||
|
|||
|
ya lo dijo dec. si quieres saber que cadena de caracteres, o
que contraseña uso el usuario, a partir del hash que tienes en tu base de datos no vas a poder usando hash, lo que necesitas es un algoritmo reversible (tu lo puedes hacer quitando ponienodo datos a la contraseña de tus usuario. una funcion servira.) digamos, como lo hacen los programadores que hacen software trial tu te registras, y el fabricante del software. te envia por mail un archivo de texto con tu serial o llave. para volver tu version trial en completamente funcional, yo he visto este tipo de mecanismos. la cadena devuelta es de este tipo de carateres sin sentido deoidadoah233208===00=02342e23 al ingresarla y usar la opcion acerca de o about. del programa me dice software registrado a jxj del empresa JXJ, Enterprise Unlimited Internacional siendo que antes de registrarlo decia software no registrado. |
|
#3
|
|||
|
|||
|
si eso es cierto oracle se me adelanto a comprar borland
|
|
#4
|
||||
|
||||
|
Todo lo que te han dicho es totalmente válido. El Hash lo que hace de una u otra forma es almacenar la contraseña de forma que no sea visible desde afuera. No hes seguro "browsear" la tabla mediante un grid o similar para ver las contraseñas, después de todo ni siquiera el administrador las debe conocer. Para los casos en los que el usuario pierde u olvida su contraseña lo normal es "resetearla" asignándole una contraseña por default que obviamente el usuario tiene que cambiar en cuanto se loguea por primera vez al sistema.
Lo más normal es solo poder consultar una lista con los nombres de usuario o sus privilegios más no sus contraseñas. Como ya comenté el administrador no puede ni debe tener acceso a la "llave" de los usuarios, este es un prinicipio básico de seguridad.
__________________
AKA "El animalito" ||Cordobés a mucha honra|| |
|
#6
|
||||
|
||||
|
Hola,
Cita:
![]() |
|
#7
|
||||
|
||||
|
Cita:
__________________
AKA "El animalito" ||Cordobés a mucha honra|| |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Gestionar un Proyecto por varias personas | belpab | Varios | 33 | 16-09-2008 15:39:09 |
| Como gestionar un proyecto | Aprendiendo | Varios | 1 | 30-06-2007 00:28:14 |
| Gestionar excepciones | Angel.Matilla | C++ Builder | 0 | 29-01-2007 13:41:54 |
| gestionar WM_MOUSEWHEEL en Scrollbox | Critter | Varios | 0 | 30-10-2006 19:53:00 |
| Gestionar Base de Datos | tarco35 | Conexión con bases de datos | 1 | 22-11-2003 15:55:33 |
|