Co jsou hashe?
Hashes jsou matematické vzorce, které berou řetězec dat o variabilní délce, obvykle ve formě textu, a převádějí je na kratší číselné hodnoty s pevnou délkou. Hashes se často používají v počítačových databázích, aby se vyhledávání zrychleně a efektivnější. Používají se také při šifrování, aby zajistily, že hesla nejsou ohrožena a ověřují mimo jiné digitální podpisy. Hashes také prochází názvem hashovacích funkcí a lze je také považovat za algoritmy.
Hashes hraje velkou roli při usnadňování vyhledávání databáze. V databázi sestávající z jmen, například, pokud uživatel vyhledá „John Doe“, počítač by musel porovnat všechny znaky při vyhledávání k těm z každé položky databáze. Každá postava ve jménu by měla 26 různých možností - písmena anglické abecedy -, zatímco variabilní délka položek by také vyhledávání zpomalila.
Naproti tomu použití funkce hashOmputerův život mnohem jednodušší. Proměnění každého textového řetězce na řadu čísel by vyhledávání zjednodušilo, protože počítač by měl pouze deset možností ke kontrole každého znaku: číslice „0“ na „9.“. Pevná délka řady čísel také pomáhá počítači efektivněji vykonávat svou práci.
V databázi s použitím hashové funkce mají všechny položky odpovídající jedinečné číslo. Tomu se říká klíč hash. V tomto případě, když provedete vyhledávání, počítač nejprve použije funkci hash na vstup, který jste napsali, například „John Doe“. To má za následek číselnou hodnotu, například „456789.“ Počítač pak může tento výsledek rychle přizpůsobit klíči hash odpovídající správné položce.
Hashes také fungují jako digitální podpisy. Například odesílatel, Robert, chce poslat dokument někomu a příjemci, Mary, chce zajistit, aby dokument nebyl Tampečervená s na cestě. Odesílatel Robert musí dokument spustit pouze prostřednictvím hashové funkce, což má za následek číselnou hodnotu. Robert poté šifruje hash klíč a pošle dokument spolu s šifrovaným klíčem.
Mary obdrží obě položky a dešifruje klíč hash. Nyní může vidět numerickou hodnotu, která vyplynula z dokumentu před jeho odesláním. Aby byla ověřena, že dokument v jejích rukou je přesně stejný, spustí dokument prostřednictvím hashové funkce na svém počítači. Nakonec porovnává obě klíče. Pokud jsou stejné, pak se dokument nezměnil na cestě k příjemci.
Existuje mnoho různých hashových funkcí, z nichž každá má vlastní matematické vzorce. Aby funkce hash fungovala, musí minimalizovat jakoukoli kolizi, ke které dochází, když mají dvě položky databáze stejný klíč hash. Funkce hash musí být také jednosměrně. To znamená, že můžete vytvořit klíč z položky nebo dokumentu databáze, ale ne naopak. Jinými slovy, nemůžete „reverzní engiNeer “původní dokument z jeho hashovacího klíče.