Constraseña en SQL

Iniciado por Xedrox, 19 Marzo 2011, 19:04 PM

0 Miembros y 1 Visitante están viendo este tema.

Xedrox

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

madpitbull_99

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 que usa RC4.

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



«Si quieres la paz prepárate para la guerra» Flavius Vegetius


[Taller]Instalación/Configuración y Teoría de Servicios en Red

Xedrox

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 (?).

Novlucker

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
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Nakp

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
Ojo por ojo, y el mundo acabará ciego.

programatrix

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

seba123neo

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.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson