O que são hashes?
Hashes são fórmulas matemáticas que pegam uma série de dados de comprimento variável, geralmente na forma de texto, e os convertem em valores numéricos mais curtos e de comprimento fixo. Os hashes são usados com frequência nos bancos de dados de computador para tornar as pesquisas mais rápidas e eficientes. Eles também são usados na criptografia para garantir que as senhas não sejam comprometidas e autentique as assinaturas digitais, entre outros usos. Os hashes também têm o nome das funções de hash e também podem ser consideradas algoritmos.
Hashes desempenham um grande papel na facilitação de pesquisas de banco de dados. Em um banco de dados que consiste em nomes, por exemplo, se um usuário procurar "John Doe", o computador teria que corresponder a todos os caracteres da pesquisa com os de todas as entradas de banco de dados. Todo caractere no nome teria 26 possibilidades diferentes - as letras do alfabeto inglês - enquanto o comprimento variável das entradas também diminuiria a pesquisa.
Por outro lado, a aplicação de uma função de hash faria o CA vida de omputer muito mais fácil. Transformar cada sequência de texto em uma série de números simplificaria a pesquisa, porque o computador teria apenas dez possibilidades para verificar cada personagem: dígitos “0” para “9”. O comprimento fixo da série de números também ajuda o computador a fazer seu trabalho com mais eficiência.
Em um banco de dados com uma função de hash aplicada, todas as entradas têm um número exclusivo correspondente. Isso é chamado de chave de hash. Nesse caso, quando você faz uma pesquisa, o computador aplica primeiro a função de hash à entrada que você escreveu, como "John Doe". Isso resulta em um valor numérico, por exemplo "456789". O computador pode então corresponder rapidamente a esse resultado com a chave de hash correspondente à entrada correta.
Hashes também funcionam como assinaturas digitais. Por exemplo, um remetente, Robert, quer enviar um documento para alguém e o destinatário, Mary, quer garantir que o documento não tenha sido Tampevermelho com enquanto estava no caminho. O remetente, Robert, só precisa executar o documento através de uma função de hash, o que resulta em um valor numérico. Robert então criptografa a chave de hash e envia o documento junto com a chave criptografada.
Mary recebe os dois itens e descriptografa a chave de hash. Agora ela pode ver o valor numérico que resultou do documento antes de ser enviado. Para verificar se o documento em suas mãos é exatamente o mesmo, ela executa o documento através de uma função de hash em seu computador. Por fim, ela compara as duas teclas. Se eles são iguais, o documento não foi alterado a caminho do destinatário.
Existem muitas funções de hash diferentes, cada uma com suas próprias fórmulas matemáticas. Para que uma função de hash funcione, ele deve minimizar qualquer colisão, que ocorre quando duas entradas de banco de dados têm a mesma chave de hash. As funções de hash também devem ser de mão única. Isso significa que você pode produzir uma chave a partir de uma entrada ou documento de banco de dados, mas não o contrário. Em outras palavras, você não pode “reverso-engineer ”o documento original de sua chave de hash.