Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: Xedrox en 19 Marzo 2011, 19:04 pm



Título: Constraseña en SQL
Publicado por: Xedrox en 19 Marzo 2011, 19:04 pm
Hola que tal, tengo una tabla de usuarios en SQL con sus nombres de usuario y contraseña. El tema es que es muy alevoso que el campo contraseña sea un varchar(30). Hay alguna forma que SQL lo encripte y lo desencripte al tirar automaticamente?

Muchas gracias
Saluds


Título: Re: Constraseña en SQL
Publicado por: madpitbull_99 en 20 Marzo 2011, 18:53 pm
Que yo sepa no existe ningún tipo de campo para contraseñas, ya sea MySQL o SQL Server.

Para SQL Server tienes alguna función "casera" para cifrar los datos, como por ejemplo esta función (http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=76258) que usa RC4.

Lo suyo es cifrar la clave con algún algoritmo como MD5 y guardarlo en la base de datos cifrado.


Título: Re: Constraseña en SQL
Publicado por: Xedrox en 20 Marzo 2011, 20:46 pm
Gracias pero no entiendo bien como funciona, me imagine una funcion que recibe un varchar y devuelve otro. Este que me pasaste recibe un varchar y devuelve una tabla (?).


Título: Re: Constraseña en SQL
Publicado por: Novlucker en 20 Marzo 2011, 23:01 pm
Tanto MySQL como SQL Server tienen funciones criptográficas con las cuales puedes almacenar tus contraseñas cifradas en la base de datos, pero por lo general se acostumbra a cifrar los datos directamente desde tu aplicación antes de almacenarlos.

Saludos


Título: Re: Constraseña en SQL
Publicado por: Nakp en 21 Marzo 2011, 03:48 am
no se trata de cifrar y descifrar :) cuando registras un usuario capturas la contraseña -> la cifras -> la guardas


y cuando el usuario inicia sesion capturas nuevamente la contraseña -> la cifras -> la comparas con la que guardaste en la base de datos... asi no las guardas como texto... por lo general se usa un CHAR antes que un VARCHAR, por la simple razon que si usas MD5 o SHA1 el hash de la contraseña es de un ancho fijo y no contiene caracteres que no sean alfanumericos, por lo tanto un campo varchar en la base de datos se vuelve.. innecesario?


salu2


Título: Re: Constraseña en SQL
Publicado por: programatrix en 21 Marzo 2011, 19:57 pm
Además como complemento, te recomiendo que si es un sistema tuyo propio, metas caracteres especiales antes y despues de la contraseña y hagas varios cifrados md5, con el fin de dificultar la tarea si la base de datos cae en malas manos.
Un hash md5 es menor que 30 caracteres, asi que no tendrás problema en Mysql
Saludos


Título: Re: Constraseña en SQL
Publicado por: seba123neo en 23 Marzo 2011, 05:00 am
tanto MySQL como SQL Server ya vienen con unas pequeñas funciones para cifrar una cadena, en este caso una contraseña, a travez de una palabra clave, no son 100% seguras, pero son para zafar.