Criptografia básica em SQL Server - Utilizando as funções pwdEncrypt e pwdCompare

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (8)  (0)

Veja neste artigo duas funções no SQL Server referente ao conceito de Criptografial.

Criptografia básica em SQL Server

Utilizando as funções pwdEncrypt e pwdCompare

 

por Darci Leandro

 

Olá pessoal,

 

Esse artigo tem como objetivo mostrar para vocês que existem duas funções no SQL Server referente ao conceito de Criptografia. São funções simples de serem utilizadas, porém básicas, pois existem limitações.

Acredito que essas funções podem ser úteis se utilizadas no momento certo.

Um ponto importante é que uma vez os dados encriptografados pela função pwdEncrypt não tem como você descriptografar. Essa é uma limitação.

 

Então vamos lá...

 

1.     Criando uma tabela de exemplo

Vamos criar uma tabela com o nome tabUsuario e com dois campos, um para armazenar o nome do usuário e o outro para armazenar a senha do usuário.

 

O campo senha terá o seu DataType varBinary pois ele irá armazenar os dados que iremos criptografar.

 

create table tabUsuario (LoginName varchar(30), Password varbinary(100))

 

2.     Trabalhando com dados

 

a.      Utilizando a System Function pwdEncrypt para encriptografar a senha do usuário.

 

declare @name varchar(30),

@pwd1 varchar(20),

@pwd2 varbinary(100)

 

set @name = 'Darci.Leandro'

set @pwd1 = 'senha*123'

set @pwd2 = Convert(varbinary(100), pwdEncrypt(@pwd1))

 

insert into tabUsuario (LoginName, Password) values (@name, @pwd2)

 

select * from tabUsuario

 

 

b.      Agora vamos utilizar a System Function pwdCompare para verificar se a senha informada “confere” com a senha existente na base de dados.

 

declare @name varchar(30),

@pwd3 varchar(20),

@pwd4 varbinary(100)

 

set @name = 'Darci.Leandro'

set @pwd3 = 'senha*123'

 

select @pwd4 = Password from tabUsuario where LoginName = @name

select pwdCompare(@pwd3, @pwd4, 0)

 

c.      Você deve analisar o resultado da seguinte forma:

 

Quando o SQL Server retornar 0, significa que a senha informada está Errada, caso retornar 1 a senha informada está Correta, ou seja, a senha informada “confere” com a senha que está na base de dados.

 

Conclusões

Apesar da limitação de não descriptografar, acredito que seja muito interessante utilizar essas funções em alguns momentos.

Na versão do SQL Server 2005 existe um novo modelo de Criptografia, onde poderá utilizar todo o conceito de Encrypt e Decrypt.

Em um artigo futuro irei abordar esse assunto com vocês.

 

Boa sorte a todos e até a próxima...

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?