Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

duda: encriptar campo password MySQL

Estas en el tema de duda: encriptar campo password MySQL en el foro de Bases de Datos General en Foros del Web. Holas: Por la linea de comando de Windows me conecto a mi base de datos en Mysql y di de alta un par de usuarios, ...
  #1 (permalink)  
Antiguo 24/08/2004, 13:06
Avatar de ko^ke  
Fecha de Ingreso: septiembre-2001
Ubicación: México D.F.
Mensajes: 364
Antigüedad: 22 años, 7 meses
Puntos: 1
duda: encriptar campo password MySQL

Holas:

Por la linea de comando de Windows me conecto a mi base de datos en Mysql y di de alta un par de usuarios, veo que el campo de password de la tabla user lo encripta de forma 'automatica', lo cual me parece muy bueno. revisando la tabla no tiene nada extra el campo está creado ´normal´. La pregunta es como puedo encriptar 'al vuelo' un campo de la misma forma que comento?.

Vi el comando password(), y el MD5, estos se tienen que ejecutar en la sentencia SQL, yo quisiera evitar ese paso y dejar preparada la tabla para recibir el campo encriptado. No se si un storeprocedure lo aguante.

Alguna idea?

Un saludo,
koke
__________________
Aquí va la firma...
  #2 (permalink)  
Antiguo 24/08/2004, 15:54
 
Fecha de Ingreso: septiembre-2003
Mensajes: 33
Antigüedad: 20 años, 7 meses
Puntos: 0
Puedes utilizar el comando GRANT que tiene muchisimas opciones.

Por ejemplo para agregar el usuario "alguien" que se conectará desde el servidor 192.168.1.56, como super usuario, y pasword 'contraseña'

mysql> GRANT ALL PRIVILEGES ON *.* TO 'alguien'@'192.168.1.56'
-> IDENTIFIED BY 'contraseña' WITH GRANT OPTION;

Puedes ver mas opciones en esta direccion

http://dev.mysql.com/doc/mysql/en/Adding_users.html


__________________
www.LatinDevelopers.com
  #3 (permalink)  
Antiguo 24/08/2004, 17:03
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 20 años, 9 meses
Puntos: 2
No entiendo muy bien tu problema: ¿para evitar usar las funciones md5 o password quieres usar un store procedure?. Pues si que son ganas de complicar las cosas.
Si quieres encriptar un campo como puede ser la password de un usuario, usas esas funciones es lo más simple y rápido que puedes hacer. De hecho, la función password() es la que usa el mysql cuando encripta los usuarios que se crean para conectarse.
Un saludo.
  #4 (permalink)  
Antiguo 25/08/2004, 13:13
Avatar de ko^ke  
Fecha de Ingreso: septiembre-2001
Ubicación: México D.F.
Mensajes: 364
Antigüedad: 22 años, 7 meses
Puntos: 1
vice , navisoft, gracias por su respuesta.

Llego a la conclusion de usar md5, solo tengo una duda en cuanto a como encriptar la cadena del password que proviene de la pagina de login para compararlo con el que existe en la base de datos?

Alguna idea?
__________________
Aquí va la firma...
  #5 (permalink)  
Antiguo 25/08/2004, 13:56
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Si estas usando PHP, este tiene la funcion para convertir a MD5. Cuando pongas el logín y la clave, usas la función para pasarlo a MD5, luego haces el SELECT respectivo para ver si existe.
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #6 (permalink)  
Antiguo 26/08/2004, 02:14
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 20 años, 9 meses
Puntos: 2
Incluso si quieres, para ocultar la clave, puedes usar el javascript para encriptarla con md5 antes de enviarla al servidor.
Un saludo.
  #7 (permalink)  
Antiguo 03/01/2005, 13:27
Avatar de Covids0020  
Fecha de Ingreso: septiembre-2003
Ubicación: España
Mensajes: 217
Antigüedad: 20 años, 7 meses
Puntos: 1
Emmm, yo tengo otro problemilla por el estilo, aunque quizás sea más de PHP:

Tengo una tabla con password creados con password(), he cambiado el sistema y ahora uso más encriptación, es decir, las cadenas resultantes ya no son o serían las resultantes de la función password()... cuanto password joder .

Bien, pues necesitaría aplicarles la nueva encriptación a la clave inicial pero solo puedo saber la cadena que resulta de password()... creo que lo estoy liando mucho esto, ggg.

A ver, en definitiva, necesitaría o, invertir la función de MySQL password() lo cual creo que no puede ser, o recuperar ese campo de la DB y aplicarle la nueva encriptación antes de que lo volviera a insertar aplicándole password() --> Sería una edición.

Bufff, espero que alguién me haya medio entendido ... aunque creo que va a estar chunga la cosa, no?.
__________________
"La sabiduría comienza donde acaba el conocimiento". Yaris.
http://www.culturadigital.org

Última edición por Covids0020; 03/01/2005 a las 13:28
  #8 (permalink)  
Antiguo 03/01/2005, 16:20
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Ok, yo haría algo como esto para simplificar la situación...

Agregar a la tabla de usuarios y claves un campo adicional de un caracter para indicar si se ha o no aplicado el nuevo algoritmo de encriptamiento.

Al crear el nuevo campo (llamemoslo nuevo), les muevo una F (falso) a todos los registros. Al pedir el login y la clave de ingreso, busco el registro, verifico si el campo nuevo tiene el valor de F. Si es así, se verifica la clave aplicando password para verificar que corresponda y si es así, tomar nuevamente la clave del usuario y aplicarle el nuevo algoritmo de encriptamiento y reemplazar la clave y el campo nuevo a T (true). La siguiente ves que ingrese el usuario, verificas el valor del campo nuevo para determinar qué algoritmo usar.

La otra alternativa, es: Si almacenas algún otro dato de los usuarios que sea único como por ejemplo. Identificación y seguro social. Realizas un update de todos usuarios poniendo en su campo clave el seguro social con el nuevo algoritmo, le avisas a todos que usen eso de clave y apenas ingresen, los obligas a cambiar la clave.

Hay varias técnias, solo tendrías que buscar la que más se adecue a tus necesidades.
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #9 (permalink)  
Antiguo 04/01/2005, 17:34
Avatar de Covids0020  
Fecha de Ingreso: septiembre-2003
Ubicación: España
Mensajes: 217
Antigüedad: 20 años, 7 meses
Puntos: 1
Muchas gracias BrujoNic... si me contestabas a mí... aún no siendo así me serviría.
Pos eso, me gusta más la primera solución sí señor, muy bueno, había pensado algo parecido, la segunda posss..., puedo mandar claves privadas y no pasaría nada pero preferiría no cambiar los passwords y no dar la bara mucho a los usuarios.
Si por técnicas a usar.....
Puedo generar, al estilo de lo comentabas, otras claves únicas para los usuarios, que ellos entren normalmente y yo ya ahí me curre lo mio para registrarlos, etc.... jeje, también pensé guardar la clave original en texto ... pero la ética no me deja XD.

En fin, muchas gracias y un saludo.
__________________
"La sabiduría comienza donde acaba el conocimiento". Yaris.
http://www.culturadigital.org
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:29.