Hash
En hash är en fungera som omvandlar ett värde till ett annat. Hashing datum är en vanlig praxis i Datavetenskap och används för flera olika ändamål. Exempel inkluderar kryptografi, kompression, kontrollsumma generation och data indexering.
Hashing är en naturlig passform för kryptografi eftersom den maskerar originaldata med ett annat värde. En hash-funktion kan användas för att generera ett värde som bara kan avkodas genom att leta upp värdet från en hash-tabell. Tabellen kan vara en array, databaseller annan datastruktur. En bra kryptografisk hashfunktion är icke-inverterbar, vilket innebär att den inte kan omvandlas.
Olika typer av kompression, t.ex. förstörande bildkomprimering och mediekompression, kan innehålla hash-funktioner för att minska filstorleken. Genom att hasha data till mindre värden kan mediefiler komprimeras till mindre bitar. Denna typ av envägs hashing kan inte vändas, men det kan producera en approximation av originaldata som kräver mindre diskutrymme.
Hashes används också för att skapa kontrollsummor som bekräftar integriteten hos filer. En kontrollsumma är ett litet värde som genereras baserat på bitar i en fil eller ett datablock som t.ex. disk bild. När kontrollsummefunktionen körs på en kopia av filen (t.ex. en fil som laddats ner från Internet), ska den producera samma hash-värde som originalfilen. Om filen inte ger samma kontrollsumma ändrades något i filen.
Slutligen används hashes för att indexera data. Hashing-värden kan användas för att mappa data till enskilda "hinkar" inom en hash bord. Varje hink har ett unikt ID som fungerar som en pekare till originaldata. Detta skapar ett index som är betydligt mindre än originaldata, vilket gör att värdena kan sökas och nås mer effektivt.