Trabalhando com funções criptográficas (MD4, MD5, SHA1, SHA2_256 e SHA2_512) utilizando a função HASHBYTES do SQL Server

Olá pessoal,
Tudo em paz ?

Um pouco sobre codificação
Neste post irei demonstrar um pouco mais sobre a função HASHBYTES do SQL Server, que permite trabalhar com funções criptográficas baseadas em HASH, onde uma vez codificado, não é possível obter a string original novamente. Caso você queira saber mais sobre criptografia utilizando o algoritmo Base64, que permite codificar e decodificar uma string, acesse aqui.

A validação da string codificada se dá por meio de comparação, codificando novamente a string a ser testada e comparando o HASH recém gerado com o HASH original. Caso os HASH’s coincidam, a string testada é confirmada como verdadeira.

Essa forma de validação é considerada mais segura que a criptogrifia, uma vez que a complexidade da codificação é muito maior e dificulta ataques hackers para quebrar a string codificada. Embora seja um método bem seguro, já foi comprovada a existência de colisões, que são duas ou mais strings que geram um mesmo HASH, fazendo com que a sua segurança seja quebrada por uma string que diferente da original. A medida que a aumentamos a quantidade de bits da nossa criptografia, mais segura ela fica e demanda mais processamento para quebrá-la (e mais espaço para armazenar os HASH’s)

Nível de criptografia dos algoritmos:

  • 128 bits (16 bytes): MD2, MD4 e MD5
  • 160 bits (20 bytes): SHA e SHA1
  • 256 bits (32 bytes): SHA2_256 (SQL Server 2012 em diante)
  • 512 bits (64 bytes): SHA2_512 (SQL Server 2012 em diante)

A função HASHBYTES
Vamos colocar em prática tudo o que foi falado acima. Mãos à obra! A função de sistema HASHBYTES retorna o hash de MD2, MD4, MD5, SHA1 ou SHA2 (SQL Server 2012 em diante) de sua entrada no SQL Server.

Exemplo 1 – SHA1:

Exemplo 2 – MD5:

Exemplo 3 – SHA1 com dados de uma tabela:

Até a próxima!

SQL, sql server, sql server 2008, sql server 2008 R2, Oracle, Oracle Database, Oracle 11g, Oracle 10g, Oracle 12c, MySQL, Firebird, Consultoria, Consultor, Programador, Programação. Desenvolvedor, Analista de Sistemas, DBA, Criação de website, Criação de Sistema Web, Vitória, Vila Velha, Guarapari, Espírito Santo, ES, Consultoria SQL em VItória, Treinamento, Curso, Prestação de serviço, prestar serviço, freelancer, freela, banco de dados, consultoria em banco de dados, consultor de banco de dados

Deixe uma resposta