Clique no banner para conhecer e adquirir o meu treinamento de Bancos de Dados no Azure

Trabalhando com o algoritmo de criptografia Base64 no SQL Server

Post Views 10,931 views
Reading time 2 minutes

Olá Pessoal,
Boa tarde!

Hoje vou fazer um post rápido, mas bem interessante para quem tem a necessidade de criptografar e/ou descriptografar strings utilizando o algoritmo Base64 no SQL Server. Muita gente não sabe, mas o SQL Server possui recursos para trabalhar com essa criptografia nativamente, sem precisar escrever toda a lógica para isso.

Um pouco sobre o Base64
Base64 é um método para codificação de dados para transferência na Internet (codificação MIME para transferência de conteúdo) . É utilizado frequentemente para transmitir dados binários por meios de transmissão que lidam apenas com texto, como por exemplo para enviar arquivos anexos por email.

É constituído por 64 caracteres ([A-Za-z0-9], “/” e “+”) que deram origem ao seu nome. O carácter “=” é utilizado como um sufixo especial e a especificação original (RFC 989) definiu que o símbolo “*” pode ser utilizado para delimitar dados convertidos, mas não criptografados, dentro de um stream.

Exemplo de codificação:
Texto original: hello world
Texto convertido para Base64: aGVsbG8gd29ybGQK

A codificação Base64 é frequentemente utilizada quando existe uma necessidade de transferência e armazenamento de dados binários para um dispositivo designado para trabalhar com dados textuais. Esta codificação é amplamente utilizada por aplicações em conjunto com a linguagem de marcação XML, possibilitando o armazenamento de dados binários em forma de texto.

Diferente das funções criptográficas como o MD5, SHA1, SHA-256 e outros, o Base64 é um método de criptografia, já que por definição, a encriptação é uma tarefa de mão dupla que você usa sempre que você precisa armazenar com segurança uma informação, mas precisa recuperá-la mais tarde através de uma chave simétrica ou privada. Já o hash, que é utilizado pelas funções criptográficas como as citadas acima, é comumente utilizado quando você necessita comparar informações e não é possível obter a string original a partir da string onde foi aplicado o Hash.

Agora vamos à prática!

Criptografando uma string
Para criptografar uma string, vamos utilizar a função fncBase64_Encode:

Usage example:

Descriptografando uma string
Para descriptografar uma string, vamos utilizar a função fncBase64_Decode:

Usage example:

É isso aí pessoal!
Até mais.