Translate

miércoles, 20 de noviembre de 2013

SQL Server: Almacenar un campo encriptado

La idea es encriptar un campo de una tabla para poder almacenar un password. Para ello usaremos el tipo de datos varBinary y los comandos pwdencrypt y pwdcompare de SQL.

La idea es al usar el insert encriptar el campo de manera que no se podrá volver a desencriptar. Para poder comparar si una entrada pasada corresponde con una clave usaremos un select con el comando pwdcompare.

Supondremos una tabla que contendrá a los Usuarios, llamada Users de la siguiente manera:

tabla

Para grabar el dato usaremos el código:

save new user 

Mientras que para comprobar una clave dado un nombre de usuario usaremos:

checkLogin
pwdencrypt encripta usando una clave hash aleatoria y que no se guarda, lo que evita que podamos desenciptar la clave para verla. No podremos editarla, tendremos que establecer algún mecanismo para que cuando una clave se olvide haya que generar una clave nueva.

No hay comentarios: