Haš je jednovstupá (až dvoustupá funkce) kdy se se zadaného řetězce (případně +dalšího zesilující toto zabezpečení (soli) )
vypočítá jiný řetězec s pevnou dálkou.
Z haše pak neni možné dostat zpět originální text:
a) je to neuvěřitelně náročné, pokud neni algoritmus prolomen tak je to složitost 2naN (N=počet bitů šifry).
b)nelze zjistit, co byl origniál existuje spoustu konkrétně
2na(2na(64-N)) řetězců se stejným hashem.
K čemu je hash dobrý?
a) hashujou se hesla do databáze, po zjískání hackerem má jen hashe a nikoliv hesla, při loginu se pak zadané heslo zahasjuje
a porovnává s hašem (no to jsem sem nenapsal: pro jednotlivé vstupy (+soli) jsou haše vždy stejné)
b) kontrola stejnosti (souborů,dokumentů, ruzné otisky) třeba na DC++. Tady je ovšem problém, že udělat dva originály se stejným hašem je sice výpočetně náročné 2na(N/2) ale dost často to jde udělat, proto se v bankách puživají hodněbitové šifry.
Prolomení hashe:
z kryptografického hladiska je to pokud se najde kolize dřív než ve 2na(N/2) nebo originál 2naN, pak je to prolomeno a je jedno jestli je to použitelné, protože už je jasné, že to neni náhodné orákuum.
Ale líp ti na tvuj dotaz odpoví Vlastimil Klíma, který je špičkou v tomhle oboru:
http://avc.sh.cvut.cz/archiv/index.php?id=1041&rid= 191&offset=0&select=Cryptofest