Este é um post disponível para assinantes MVPCriptografia 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.
[Artigo já está disponível no Leitor Digital DevMedia®. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da SQL Magazine 76
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 @CriptografaEND
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 ENDCaro 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 MeloMCP | MCTS em SQL Server 2008 | Projetista de Dados
Space do autor


0
0
