martes, abril 08, 2008

Encriptar y Desencriptar de manera sencilla en MS SQL 2005

Estoy en pleno desarrollo de una aplicacion que va a estar montada sobre la plataforma de .net. Una de las preocupaciones es la parte de seguridad de las contraseñas, es cierto que las sentencias de SQL que a continuacion se muestran, no son las mas seguras como lei por ahi. Pero es una manera sencilla y rapida de salir, es un mejor que nada.

Sin mucho rollo pongo el codigo:

INSERT INTO Users
(Id, Username, Password)
VALUES (20, 'user20', ENCRYPTBYPASSPHRASE('siempremeolvido', 'pass20'))

Para el caso de obtener la informacion en formato "leíble":

SELECT Id, Username, CONVERT(VARCHAR(300), DECRYPTBYPASSPHRASE('siempremeolvido', Password))
FROM Users


Para el caso de busqueda por un usuario y contraseña


SELECT Id, Username, Password, Added, Status
FROM Users
WHERE (Username='victor')AND(CONVERT(VARCHAR(300), DECRYPTBYPASSPHRASE('siempremeolvido', Password)) = 'pass20')

Listo!

2 comentarios:

Domingo Sanz dijo...

Me parecio excelente tu metodo de encriptacion para salir de una forma rapida del paso.

Es increible darse cuenta que siempre hay mas de una solucion para resolver un problema en programacion.

Atte Domingo Sanz

Mariano dijo...

Hola, tengo un problema, utilizo el codigo desde el administrador de la base y me funciona perfecto, pero cuando lo uso desde el codigo java jdbc, me trae solamente la primer letra de la contraseña, que puede ser?, muchas gracias.