SQL SERVER Como crear un campo contraseña o password?
[smartads]
Como crear un campo que tenga una contraseña o password?
Seguramente alguna vez te has encontrado con la pregunta de como almaceno un password (Encriptado) en sql server? .
Para esto se tiene las funciones PWDENCRYPT y PWDCOMPARE.
Para almacenar un valor encriptado de manera asimétrica, tendrá que existir un campo con el tipo VARBINARY(longitud), en el caso de ejemplo se tiene una tabla llamada Login
CREATE TABLE login
(
[IdLogin] [int] IDENTITY(1,1) PRIMARY KEY,
[IdUsuario] [varchar](255)NOTNULL,
[Contrasenia] [varbinary](max)NOT NULL
)
Entonces para ingresar un valor se hace:
insert into login(IdUsuario, contrasenia) values(‘buhoos’,PWDENCRYPT(‘12345678’))
y para buscar o hacer match del usuario cuando este se logee será:
select * from login where IdUsuario =‘buhoos’ and PWDCOMPARE(‘12345678’, contrasenia)= 1
Si esta consulta devuelve un registro, el logeo es exitoso, pero si no devuelve nada entonces el “usuario o la contraseña no es correcta“.
Para ver mas claramente el uso de estas funciones vea
DECLARE @PASS VARBINARY(MAX)
SELECT @PASS = PWDENCRYPT(‘123456’)
SELECT @PASS
SELECT ‘LOGIN OK!!!’ WHERE PWDCOMPARE(‘123456’, @PASS) = 1
muchas gracias, me ha salvado tio!