Hash
Um hash é uma função que converte um valor em outro. O hashing de dados é uma prática comum em ciência da computação e é usado para várias finalidades diferentes. Alguns exemplos incluem criptografia, compressão, geração de somas de verificação e indexação de dados.
O hashing é naturalmente adequado para a criptografia porque oculta os dados originais com outro valor. Uma função hash pode ser usada para gerar um valor que só pode ser decodificado consultando esse valor em uma tabela hash. A tabela pode ser um vetor, um banco de dados ou outra estrutura de dados. Uma boa função hash criptográfica não é inversível, o que significa que não pode ser submetida a engenharia reversa.
Diferentes tipos de compressão, como a compressão de imagens com perdas e a compressão de mídia, podem incorporar funções hash para reduzir o tamanho dos arquivos. Ao transformar dados em valores menores por meio de hashing, os arquivos de mídia podem ser comprimidos em blocos menores. Esse tipo de hashing unidirecional não pode ser revertido, mas pode produzir uma aproximação dos dados originais que ocupa menos espaço em disco.
Os hashes também são usados para criar somas de verificação, que validam a integridade de arquivos. Uma soma de verificação é um valor pequeno gerado com base nos bits de um arquivo ou bloco de dados, como uma imagem de disco. Quando a função de soma de verificação é executada em uma cópia do arquivo, como um arquivo baixado da Internet, ela deve produzir o mesmo valor hash que o arquivo original. Se o arquivo não produzir a mesma soma de verificação, algo no arquivo foi alterado.
Por fim, os hashes são usados para indexar dados. Os valores de hashing podem ser usados para mapear dados para "compartimentos" individuais dentro de uma tabela hash. Cada compartimento tem um ID exclusivo que funciona como um ponteiro para os dados originais. Isso cria um índice significativamente menor que os dados originais, permitindo que os valores sejam pesquisados e acessados com mais eficiência.
Teste seus conhecimentos