Funções de hashing
É possível usar as funções hash para codificar dados, transformando a entrada em um código hash ou 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 hash para acelerar a recuperação de registros de dados (consultas unidirecionais simples), para validar dados (usando Somas de verificação) e para desempenhar 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.
- Detectar registros duplicados. Como as chaves de hash de duplicatas executam hash para o mesmo "depósito" na hashtable, a tarefa é reduzida a varrer depósitos que têm mais de dois registros. Este é um método muito mais rápido do que classificar e comparar cada registro no arquivo. Além disso, é possível usar técnicas para localizar registros semelhantes: pois chaves semelhantes executam hash para depósitos que são contíguos, a procura por registros semelhantes pode, portanto, se limitar a esses depósitos.
- Localizar pontos que estejam próximos uns dos outros. Aplicar uma função de hashing a dados espaciais particiona efetivamente o espaço que está sendo modelado em uma grade. Como no exemplo anterior, o tempo de recuperação e da comparação é bastante reduzido porque somente células contíguas na grade devem ser procuradas. Essa mesma técnica funciona para outros tipos de dados espaciais, como formas e imagens.
- Verificar 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 está corrompida.
- Verificar senhas. Durante a autenticação, as credenciais de login de um usuário são submetidas à hash e esse valor é comparado à senha em hash que está armazenada para esse usuário.