Estás dos funciones en SQL Server permiten cifrar y descifrar valores y que son muy últiles para guardar información no legible en la base de datos.
Ejemplo de uso:
--Devuelve la cadena cifrada.
select pwdencrypt('abcde')
--el resultado es: 0x0100841F6D61428B6A7C1E497428DA4F77201E9C15CE03B39414324ADFC9BEDF7C73FCEC7120D2AEEEACA1732737
--Este valor es el que almacenamos en nuestra tabla, por ejemplo un numero de cuenta o una contraseña, de esta manera si alguien ingresa a esta tabla no sabrá a que valor pertenece.
--Ahora comparamos el texto en claro con lo que se almacena en la BD, regresa 1 si son iguales, sino cero.
select pwdcompare('abcde',0x0100841F6D61428B6A7C1E497428DA4F77201E9C15CE03B39414324ADFC9BEDF7C73FCEC7120D2AEEEACA1732737)
Ahora veremos un store procedure en donde recibe el texto en claro -un password- y lo compara
con el que esta en la BD cifrado.
CREATE PROCEDURE dbo.spu_SelectUsr
@Usuario varchar(15),
@Passwd varchar(15)
AS
Set nocount on;
Declare @ExisteCta bit
set @ExisteCta = 0
SELECT @ExisteCta = 1
FROM USUARIO
WHERE (Usuario = @Usuario) AND (pwdcompare(@Passwd, PasswdCifrado)=1)
if @ExisteCta = 0
begin
Raiserror 13000 'No existe la cuenta de acceso proporcionada.'
Return
end
Go
Link otros ejemplos
http://msmvps.com/blogs/gladchenko/archive/2005/04/06/41083.aspx
No hay comentarios.:
Publicar un comentario