É possível usar funções de hashing para codificar dados, transformar a entrada em um "código hash" ou em um "valor do hash".
O algoritmo hash é projetado para minimizar a possibilidade de duas entradas terem o mesmo valor do hash, o que é chamado de colisão.
É possível usar as funções de hashing para acelerar a recuperação de registros de dados (consultas unidirecionais simples), para a validação de dados ("somas de verificação") e para criptografia.
Para consultas, o código hash é usado como um índice em uma tabela hash que contém um ponteiro para o registro de dados. Para somas de verificação, o código hash é calculado para os dados antes do armazenamento ou da transmissão e, em seguida, recalculado posteriormente para verificar a integridade dos dados; se os códigos hash não corresponderem, os dados serão corrompidos.
As funções hash criptográficas são usadas para segurança de dados.
Alguns casos de uso comuns para funções de hashing incluem:
- Registros duplicados detectados. Como as chaves de hash de duplicatas efetuam hash no mesmo "bucket" na hashtable, a tarefa é reduzida a varrer buckets que têm mais de dois registros, um método muito mais rápido do que classificar e comparar cada registro do arquivo.
(Esta mesma técnica pode ser usada para localizar registros semelhantes, como chaves semelhantes que efetuam hash em buckets contíguos, a procura por registros semelhantes pode, portanto, se limitar a esses buckets).
- Localize pontos que estejam próximos uns dos outros. Aplicar uma função hash a dados espaciais efetivamente particiona o espaço que está sendo modelado em uma grade e, como no exemplo anterior, o tempo de recuperação/comparação é bastante reduzido porque a procura precisa ser feita somente em células contíguas na grade. Essa mesma técnica funciona para outros tipos de dados espaciais, como formas e imagens.
- Verifique a integridade da mensagem. O hash de trechos da mensagem é feito tanto antes quanto após a transmissão e os dois valores do hash são comparados para determinar se a mensagem foi corrompida.
- Verifique as senhas. Durante a autenticação, é efetuado hash das credenciais de login de um usuário e esse valor é comparado à senha com hash efetuado armazenada para esse usuário.