Hash alatt kétféle dolgot érthetünk. Egy adattípust és függvényeket. Lényegét tekintve mindkettő hasonló, de más-más területen használjuk. A magyar nyelven kivonatnak is nevezzük.
Adattípusként adatokat tárolunk egy hash típusú változóban. Az adatokra jellemző, hogy kulcs és érték párokból állnak. Új adat felvétel esetén egy algoritmus keresi az olyan kulcsot, amely még nem létezik.
A hash függvényekkel adatsorokhoz tartozó kulcsokat állíthatunk elő, adott algoritmussal. A hash függvények jellemzője, hogy csak egyirányú algoritmusok, vagyis a kulcsból nem állítható elő az adatsor. Az előállított kulcsok mindig különböznek. Elvileg előfordulhat, hogy két adatsorból azonos kulcsot állítunk elő, azonban ennek gyakorlati esélye nagyon kicsi.
Láthatjuk, hogy mindkét esetben van egy kulcs és a hozzátartozó adat. A kulcs alapján azonosítható az adat. Az elv ugyanaz, de más területen használjuk.
A hash függvények felhasználásának két példája: Adott egy DVD képfájl, és szeretnénk egy rövid karaktersorozatot, kulcsot, vagy másként mondva hash szöveget hozzárendelni. A hash szöveggel ellenőrizhetjük a DVD képfájl sértetlenségét.
Másik felhasználási területe a jelszavak titkosítása.
mcedit tit.pl
Futtatás és annak eredménye:
chmod u+x tit.pl ./tit.pl
crypt => '$6$sosososo$sFbKykZmKl/KqRsFA7oIwO2SrLAqT0JB/JA2.ooSTpzIajwUyVQtOX9FDn85pKkX4hh2q3bmNRessW/lGXUGY1
A következő példához telepíteni kell a digest-sha perl modult. Debian GNU/Linuxon ez például így lehetséges:
apt-get install libdigest-sha-perl
Ezek után egy mintaprogram: