Skip to main content

O que é uma função hash criptográfica?

Cats vs. Dinos Returns! - Plants vs. Zombies: Garden Warfare 2 - Gameplay Part 227 (PC) (Junho 2026)

Cats vs. Dinos Returns! - Plants vs. Zombies: Garden Warfare 2 - Gameplay Part 227 (PC) (Junho 2026)
Anonim

Uma função hash criptográfica é um algoritmo que pode ser executado em dados, como um arquivo individual ou uma senha, para produzir um valor chamado de soma de verificação.

O principal uso de uma função hash criptográfica é verificar a autenticidade de um dado. Dois arquivos podem ser considerados idênticos somente se as somas de verificação geradas de cada arquivo, usando a mesma função hash criptográfica, forem idênticas.

Algumas funções hash criptográficas comumente usadas incluem MD5 e SHA-1, embora muitas outras também existam.

As funções hash criptográficas são geralmente chamadas de "funções hash", mas isso não é tecnicamente correto. Uma função hash é um termo genérico que engloba funções hash criptográficas juntamente com outros tipos de algoritmos, como verificações de redundância cíclicas.

Funções de hash criptográficas: um caso de uso

Digamos que você baixe a versão mais recente do navegador Firefox. Por algum motivo, você precisava baixá-lo de um site diferente do da Mozilla. Como não está sendo hospedado em um site em que você aprendeu a confiar, você gostaria de ter certeza de que o arquivo de instalação recém-baixado é exatamente o mesmo que o oferecido pela Mozilla.

Usando uma calculadora de soma de verificação, você calcula uma soma de verificação usando uma função hash criptográfica específica, como SHA-2, e a compara com aquela publicada no site da Mozilla. Se eles forem iguais, você pode estar razoavelmente seguro de que o download que você tem é o que a Mozilla pretende que você tenha.

As funções de hash criptográficas podem ser revertidas?

As funções hash criptográficas são projetadas para impedir a capacidade de reverter as somas de verificação que elas criam de volta aos textos originais. No entanto, apesar de serem virtualmente impossíveis de reverter, eles não têm 100% de garantia de proteção de dados.

Os hackers podem usar uma tabela de arco-íris para descobrir o texto simples de uma soma de verificação.

As tabelas do arco-íris são dicionários que listam milhares, milhões ou até bilhões de somas de verificação ao lado de seu valor de texto simples correspondente.

Embora isso não esteja tecnicamente revertendo o algoritmo de hash criptográfico, pode ser, já que é tão simples de fazer. Na realidade, como nenhuma tabela de arco-íris pode listar todas as verificações possíveis existentes, elas geralmente são úteis apenas para frases simples, como senhas fracas.

Aqui está uma versão simplificada de uma tabela de arco-íris para mostrar como se trabalharia ao usar a função hash criptográfica SHA-1:

Texto simplesChecksum SHA-1
123458cb2237d0679ca88db6464eac60da96345513964
password1e38ad214943daad1d64c102faec29de4afe9da3d
eu amo meu cachorroa25fb3505406c9ac761c8428692fbf5d5ddf1316
Jenny4007d5eb0173008fe55275d12e9629eef8bdb408c1f
dallas1984c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2

Um hacker deve saber qual algoritmo hash criptográfico foi usado para gerar as somas de verificação para descobrir os valores.

Para proteção adicional, alguns sites que armazenam senhas de usuários executam funções adicionais no algoritmo de hash criptográfico depois que o valor é gerado, mas antes de ser armazenado. Esse processo produz um novo valor que apenas o servidor da Web entende e que não corresponde à soma de verificação original.

Por exemplo, depois que uma senha é inserida e a soma de verificação é gerada, ela pode ser separada em várias partes e rearranjada antes de ser armazenada no banco de dados de senhas, ou certos caracteres podem ser trocados por outros. Ao tentar autenticar a próxima vez que o usuário fizer logon, o servidor da web reverte essa função adicional e a soma de verificação original é gerada novamente para verificar se a senha de um usuário é válida.

Tomar essas etapas limita a utilidade de um hack onde todas as somas de verificação são roubadas. A idéia é executar uma função que é desconhecida, portanto, se o hacker souber o algoritmo de hash criptográfico, mas não o algoritmo personalizado, saber as somas de verificação de senha não será útil.

Senhas e funções criptográficas de hash

Um banco de dados salva senhas de usuário de maneira semelhante a uma tabela de arco-íris. Quando sua senha é digitada, a soma de verificação é gerada e comparada com a registrada com seu nome de usuário. Você recebe acesso se os dois forem idênticos.

Dado que uma função hash criptográfica produz uma soma de verificação não reversível, é seguro para você tornar sua senha tão simples quanto 12345, ao invés de 12@34$5, simplesmente porque os checksums em si não podem ser entendidos? Não, e aqui está o porquê.

Essas duas senhas são impossíveis de decifrar apenas olhando apenas para as somas de verificação:

MD5 para 12345: 827ccb0eea8a706c4c34a16891f84e7b

MD5 para 12 @ 34 $ 5: a4d3cc004f487b18b2ccd4853053818b

À primeira vista, você pode pensar que não há problema em usar essas senhas. Isso é verdade se um invasor tentar descobrir sua senha adivinhando a soma de verificação MD5, o que ninguém faz, mas não é verdade se for executada uma força bruta ou um ataque de dicionário, o que é uma tática comum.

Um ataque de força bruta ocorre quando várias tentativas aleatórias são tomadas ao adivinhar uma senha. Neste caso, seria fácil adivinhar 12345, mas é muito difícil descobrir aleatoriamente o outro. Um ataque de dicionário é semelhante, pois o invasor pode tentar todas as palavras, números ou frases de uma lista de senhas comuns (e não tão comuns) e12345 é uma daquelas senhas comuns.

Mesmo que funções hash criptográficas produzam checksums difíceis de impossíveis de adivinhar, você ainda deve usar uma senha complexa para todas as suas contas de usuário online e local.

Mais informações sobre funções criptográficas de hash

Pode parecer que as funções hash criptográficas estão relacionadas à criptografia, mas as duas funcionam de maneiras diferentes.

A criptografia é um processo bidirecional em que algo é criptografado para se tornar ilegível e depois descriptografado posteriormente para ser usado normalmente novamente. Você pode criptografar os arquivos armazenados para que qualquer pessoa que os acesse não consiga usá-los ou pode usar a criptografia de transferência de arquivos para criptografar arquivos que estão sendo movidos em uma rede, como os que você envia por upload ou download on-line.

As funções hash criptográficas funcionam de maneira diferente, pois as somas de verificação não devem ser revertidas com uma senha especial de dehashing. O único objetivo das funções hash criptográficas é comparar duas partes de dados, como ao fazer o download de arquivos, armazenar senhas e extrair dados de um banco de dados.

É possível que uma função hash criptográfica produza a mesma soma de verificação para diferentes partes de dados. Quando isso acontece, é chamado de colisão, o que é um grande problema, considerando que o ponto inteiro de uma função hash criptográfica é fazer somas de verificação exclusivas para cada entrada de dados.

As colisões podem ocorrer porque cada função hash criptográfica produz um valor de comprimento fixo, independentemente dos dados de entrada. Por exemplo, a função hash criptográfica MD5 gera 827ccb0eea8a706c4c34a16891f84e7b, 1f633b2909b9c1addf32302c7a497983 e e10adc3949ba59abbe56e057f20f883e para três blocos de dados totalmente diferentes.

A primeira soma de verificação é de 12345. O segundo foi gerado a partir de mais de 700 letras e números, e o terceiro é de 123456.

Todas as três entradas são de diferentes comprimentos, mas os resultados são sempre de apenas 32 caracteres desde que a soma de verificação MD5 foi usada.

Não há limite para o número de somas de verificação que podem ser criadas porque cada pequena alteração na entrada deve produzir uma soma de verificação completamente diferente. Como há um limite para o número de somas de verificação que uma função hash criptográfica pode produzir, há sempre a possibilidade de você encontrar uma colisão.

É por isso que outras funções hash criptográficas foram criadas. Enquanto o MD5 gera um valor de 32 caracteres, o SHA-1 gera 40 caracteres e o SHA-2 (512) gera 128. Quanto maior o número de caracteres que o checksum possui, menor a probabilidade de ocorrer uma colisão.