Co jsou Hashes?
Hashes jsou matematické vzorce, které berou řetězec dat proměnné délky, obvykle ve formě textu, a převádějí je na kratší číselné hodnoty s pevnou délkou. Haši se často používají v počítačových databázích, aby se vyhledávání zrychlilo a zefektivnilo. Používají se také v šifrování, aby mimo jiné zajistily, že hesla nebudou ohrožena, a ověřovaly digitální podpisy. Hashes také jít podle jména hash funkcí, a moci také být považován za algoritmy.
Hashes hrají velkou roli při usnadňování vyhledávání v databázi. Například v databázi skládající se ze jmen, pokud uživatel vyhledává výraz „John Doe“, by počítač musel přiřadit všechny znaky při hledání k znakům každé položky databáze. Každý znak v názvu by měl 26 různých možností - písmena anglické abecedy - zatímco proměnná délka položek by také zpomalila vyhledávání.
Naproti tomu by použití hashovací funkce usnadnilo život počítače. Proměnit každý textový řetězec na řadu čísel by vyhledávání zjednodušilo, protože počítač by měl pouze deset možností, jak zkontrolovat každý znak: číslice „0“ až „9.“ Pevná délka číselných řad také pomáhá počítači dělat jeho pracovat efektivněji.
V databázi s použitou hashovací funkcí mají všechny položky odpovídající jedinečné číslo. Tomu se říká hash klíč. V tomto případě, když provedete vyhledávání, počítač nejprve použije hashovací funkci na vstup, který jste napsali, například „John Doe“. Výsledkem bude číselná hodnota, například „456789.“ Počítač může poté rychle porovnejte tento výsledek s hashovacím klíčem odpovídajícím správnému zadání.
Hashes také fungují jako digitální podpisy. Například odesílatel Robert chce někomu poslat dokument a příjemce, Mary, chce zajistit, aby s dokumentem nebylo během cesty manipulováno. Odesílatel Robert musí dokument spouštět pouze pomocí hashovací funkce, která má za následek číselnou hodnotu. Robert poté zašifruje hashovací klíč a zašle dokument společně se šifrovaným klíčem.
Mary přijímá obě položky a dešifruje hashovací klíč. Nyní může vidět číselnou hodnotu, která vyplynula z dokumentu před jeho odesláním. Aby ověřila, že dokument v jejích rukou je přesně stejný, spustí dokument pomocí hashovací funkce na svém počítači. Nakonec porovná oba klíče. Pokud jsou stejné, pak se dokument na cestě k příjemci nezměnil.
Existuje mnoho různých hašovacích funkcí, z nichž každá má své vlastní matematické vzorce. Aby hashovací funkce fungovala, musí minimalizovat jakoukoli kolizi, ke které dochází, když dvě položky databáze mají stejný hash klíč. Hašovací funkce musí být také jednosměrné. To znamená, že můžete vytvořit klíč z položky databáze nebo dokumentu, ale ne naopak. Jinými slovy, nemůžete „zpětně analyzovat“ původní dokument z jeho hashovacího klíče.