DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da SQL Magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Criptografia de Dados no SQL Server - SQL Magazine 76

O artigo apresenta diferentes mecanismos para implementação de criptografia nas versões 2000 e 2005 do SQL Server. Para isso, exemplos práticos são descritos. Ao final, é apresentada uma solução de implementação para a funcionalidade de autenticação de usuário com criptografia através de um exemplo.






Valteir Crispim De Deus
Durante a compilação, notei que as funções descritas compilaram com erros. Segue abaixo a versão corrigida e testada:
 

Listagem 4. Funcao escalar para criptografia de dados usando a funcao ENCRYPTBYPASSPHASE

CREATE FUNCTION FUN_CriptografaSenha

(

@TxSenha VARCHAR(1000)

)

RETURNS VARBINARY(4000)

AS

BEGIN

DECLARE @ChaveCriptografia VARCHAR(1000)

SET @ChaveCriptografia = ''ChaveCriptografia''

-- CRIPTOGRAFANDO A SENHA

DECLARE @Criptografa VARBINARY(5000)

SELECT @Criptografa = ENCRYPTBYPASSPHRASE(@ChaveCriptografia, @TxSenha)

-- RETORNA A SENHA CRIPTOGRAFADA

RETURN @Criptografa

END

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 

Listagem 6. Funcao escalar para decoficar dados usando a funcao DECRYPTBYPASSPHASE

-- FUNO ESCALAR PARA DESCRIPTAR

CREATE FUNCTION FUN_DescriptografaSenha

(

@NoUsuario VARCHAR(20)

)

RETURNS VARCHAR(4000)

AS

BEGIN

-- CRIANDO A CHAVE PARA CRIPTOGRAFAR

DECLARE @ChaveCriptografia VARCHAR(1000)

SET @ChaveCriptografia = ''ChaveCriptografia''

-- RECUPERANDO A SENHA DO USURIO AINDA CRIPTOGRAFADA

DECLARE @SenhaCriptografada VARCHAR(1000)

SELECT @SenhaCriptografada=MAX(TxSenha)

FROM TbUser WHERE NoUsuario

COLLATE SQL_Latin1_General_CP1_CS_AS = @NoUsuario

-- DESCRIPTOGRAFANDO A SENHA

DECLARE @Descriptografa VARCHAR(5000)

SELECT @Descriptografa = DECRYPTBYPASSPHRASE(@ChaveCriptografia,@SenhaCriptografada)

-- RETORNA A SENHA CRIPTOGRAFADA

RETURN @Descriptografa

END

[há +1 ano] - Responder

 

[autor] Heberton Melo

Caro Valteir

Eu agradeço as sugestões postadas, mas tenho algumas ressalvas.

Ocorre que o código publicado na revista refere-se a uma implementação contemplada no SQL Server 2008 e 2008 R2.

A julgar pelo seu código é bem possível que você esteja utilizando o SQL Server 2005. Aqueles que adquiriram a revista podem testar os códigos no SQL Server 2008 e 2008 R2 sem erros.

Aqueles que tiverem apenas o SQL Server 2005 o código original não irá funcionar de fato.

No SQL Server 2005 não era possível declarar e inicializar um parâmetro ao mesmo tempo, isso se tornou possível somente na versão do SQL Server 2008 em diante.

Nesse caso o seu código pode servir como alternativa.

Eu agradeço desde já.

Jose Heberton Vilela de Melo
MCP | MCTS em SQL Server 2008 | Projetista de Dados
[há +1 ano] - Responder
 



Publicidade
Autor
Heberton Melo

Administrador de Banco de Dados da SET – Secretaria de Tributação do RN, Microsoft Certified: MCP, MCTS - Microsoft Certified Technology Specialist em SQL Server 2008 e Projetista de Dados.


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
0   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03