Paulo Henrique
2 min readJun 7, 2021

Criptografia de dados com SQL Server

Já precisou guardar alguma informação sigilosa dentro do BD (banco de dados) e não soube como ? Talvez você utilize algum site para criptografar como o md5 (e até para descriptografar) e ai só depois você pode inserir as informações no banco. Bom, existe uma maneira mais fácil e rápida.

Utilizando as funções EncryptByPassPhrase e DecryptByPassPhrase do SQL Server.

A função EncryptByPassPhrase é o que próprio nome já diz, ela criptografa uma informação passando uma senha. Já a DecryptByPassPhrase faz a descriptografia utilizando a senha passada anteriormente.

Abaixo segue um exemplo:

EncryptByPassPhrase

No exemplo a seguir vamos criptografar o campo de Phone.

Observe que o tipo do campo Telefone é diferente ele vai ser criado como varbinary.

Após a criação da tabela vamos inserir os os dados já utilizando a função EncryptByPassPhrase e observe que o primeiro parâmetro que passamos é a senha que no exemplo utilizamos como `SENHA@123` (que senha forte não? kkkk) e só depois passamos o campo que será criptografado.

Agora vamos fazer um select para podermos visualizar os dados que foram inseridos.

Agora no campo de ‘TELEFONE’ temos um monte de letras e números.

DecryptByPassPhrase

E para descriptografar os dados do campo ‘Telefone’ é bem simples, basta apenas utilizar a função DecryptByPassPhrase e assim como antes passamos a senha como primeiro parâmetro e depois o campo.

Vamos fazer novamente o select para ver como os dados vieram e se realmente conseguimos descriptografar.

Veja que só utilizando o a função ele não descriptografou e pior ainda, agora os números estão todos repetidos, então e o que faltou ?

Faltou uma pequena parte, o ‘CAST’ para fazer a conversão dos dados binários.

Agora sim, descriptografamos os dados do campo ‘Telefone’.

Para facilitar deixei o campo criptografado e descriptografado.

Se você acha que ficou faltando alguma coisa ou algo está errado, por favor me chame no chat.

Linkedin/in/paulohenriquess/