A hash egy fix hosszúságú karakterlánc (kivonat), amelyet tetszőleges méretű bemeneti adatokból generálnak egy hash függvény segítségével. A folyamat egyirányú – nem lehet visszafejteni vagy visszafordítani egy hash-t az eredeti adatok visszaszerzéséhez. Ezért a "hash titkosítás" félrevezető elnevezés; A hashelés nem titkosítás.
Népszerű hash algoritmusok a következők:
MD5 (biztonsági okokból elavult)
SHA-1 (elavult)
SHA-256, SHA-512 (az SHA-2 család része)
SHA-3
bcrypt, scrypt, Argon2 (a biztonságos jelszó-hasheléshez)
A hashelés számos célt szolgál a kiberbiztonság és az adatintegritás terén. A hashelés használatának főbb okai a következők:
Adatintegritás: Biztosítja, hogy az adatok ne változzanak (pl. fájl ellenőrzőösszegek).
Jelszótárolás: A jelszavakat biztonságosan tárolja a hashek összehasonlításával a tényleges jelszavak tárolása helyett.
Digitális aláírások: A hasheket írják alá, nem pedig a nagy dokumentumokat.
Hatékonyság: A kis, fix méretű hash értékek gyorsabban összehasonlíthatók, mint a nagy adatblokkok.
Mivel a hashek determinisztikusak és gyorsak, ideálisak ellenőrzési feladatokhoz.
Hash függvény használata a következőket foglalja magában:
Adatok bevitele (pl. fájl, karakterlánc vagy jelszó).
Az adatok feldolgozása egy hash algoritmussal.
Egy kivonat beszerzése, amely egy fix méretű karakterlánc, amely egyedileg jelöli a bemenetet.
Jelszóvédelem:
Kombinálja a jelszót egy salt-val (véletlenszerű adatok).
Alkalmazzon egy biztonságos hash függvényt (pl. bcrypt vagy Argon2).
Tárolja biztonságosan a kapott hash-t és salt-ot.
Mivel A hash-ek nem fordíthatók vissza, a bevitelt (mint egy jelszót) úgy ellenőrizzük, hogy újra hasheljük, és összehasonlítjuk az új hash-t a tárolttal.
A hashelést akkor kell használni, ha:
Az adatok integritását ellenőrizni kell (pl. sérülés vagy manipuláció ellenőrzése).
A jelszavakat biztonságosan kell tárolni (nem titkosítva vagy egyszerű szövegként).
Digitális aláírások és tanúsítványok vannak érvényben (a hashelés biztosítja a dokumentum hitelességét).
Gyors adat-összehasonlítás szükséges (pl. hash táblákban vagy gyorsítótárakban).
Hashelés nem alkalmas, ha később vissza kell állítani az eredeti adatokat – erre való a titkosítás.