hash function
Főnév
hash function (tsz. hash functions)
A hash függvény (más néven kivonatoló függvény) egy olyan matematikai algoritmus, amely egy tetszőleges hosszúságú bemeneti adatból egy rögzített hosszúságú kimenetet, úgynevezett hash értéket vagy kivonatot (angolul: digest) állít elő.
Ez a hash érték jellemzően hexadecimális számjegyekből áll (pl. e3b0c442...) és teljesen egyedi módon azonosítja a bemenetet – legalábbis elméletben. Nézzük meg részletesen, mit jelent ez és hogyan működik.
🧠 A hash függvény fő jellemzői
Egy jó hash függvény a következő tulajdonságokkal rendelkezik:
1. Determináltság
Ugyanaz a bemenet mindig ugyanazt a hash értéket adja. > Pl. ha „alma” → 9c56cc51..., akkor bármikor, bárhol, mindig ez lesz az eredmény.
2. Gyors számítás
A hash érték kiszámítása nagyon gyors, még nagy adatok esetén is.
3. Elhanyagolható esély az ütközésre
Két különböző bemenet sosem (vagy extrém ritkán) adhatja ugyanazt a hash-t. Ezt nevezzük ütközésmentességnek (collision resistance).
4. Előrejelzhetetlenség
A hash értékből nem lehet visszafejteni az eredeti adatot. Ez egyirányú (one-way) művelet.
5. Érzékeny változásokra
Egyetlen karakter megváltoztatása a bemenetben teljesen más hash-t eredményez. Ezt nevezik avalanche effect-nek.
📦 Mire használjuk a hash függvényeket?
🔐 1. Adatintegritás ellenőrzése
Ha egy fájlhoz vagy üzenethez tartozik egy hash érték, és később újraszámítjuk ezt a hash-t, akkor összehasonlíthatjuk az eredeti hash-sel. Ha megegyezik, biztosak lehetünk benne, hogy az adat nem módosult.
Példa: - Fájl letöltésekor a weboldalon látod: SHA256: 1a79a4d60... - Letöltés után te is kiszámítod a hash-t: ha egyezik → fájl sértetlen.
🔒 2. Jelszó tárolása
A jelszavakat nem célszerű titkosítva tárolni — helyette hash-elve szokás: - Felhasználó beírja: macskafogo2025 - A rendszer hash-eli, pl. SHA-256-al - Az adatbázis csak a hash értéket tárolja - Bejelentkezéskor újra hash-el, összehasonlítja a tárolttal
Így ha valaki feltöri az adatbázist, nem jut hozzá közvetlenül a jelszavakhoz.
🧾 3. Digitális aláírások
Egy digitális dokumentumhoz tartozik egy hash, amit az aláíró privát kulccsal titkosít. Ez lesz a digitális aláírás. A vevő oldal a dokumentumból újra kiszámítja a hash-t, és összehasonlítja az aláírt változattal (amit a nyilvános kulccsal dekódol).
⛓️ 4. Blockchain technológia
A blokkláncokban minden blokk hash-t használ: - Minden blokk tartalmazza az előző blokk hash-ét → így láncolódnak - Ha bármelyik adat megváltozik, az összes következő blokk érvénytelen lesz - Ez biztosítja a visszamenőleges manipuláció elleni védelmet
⚙️ Népszerű hash algoritmusok
| Algoritmus | Kimenet hossza | Jellemzők |
|---|---|---|
| MD5 | 128 bit (32 karakter) | Gyors, de nem biztonságos – ütközés lehetséges |
| SHA-1 | 160 bit (40 karakter) | Már elavult, nem ajánlott |
| SHA-256 | 256 bit (64 karakter) | Biztonságos, elterjedt |
| SHA-3 | Változó | Modern, ütközésálló, újabb generáció |
| BLAKE2 / BLAKE3 | Gyorsabb és biztonságos | Egyre népszerűbb |
🔍 Hashing vs Encryption – Mi a különbség?
| Tulajdonság | Hash | Titkosítás |
|---|---|---|
| Egyirányú? | ✅ | ❌ (visszafejthető) |
| Visszafejthető? | ❌ | ✅ |
| Cél | Azonosítás, integritás | Titkosság, olvashatatlanság |
| Példa | Jelszóellenőrzés | Adatátvitel titkosítása (VPN, HTTPS) |
🧪 Példa hash működésre
Nézzük meg a következő bemenetet:
alma
- MD5 hash:
5bfa1f8e4e0f16f9d99e7a3b28c6f1bf - SHA-256 hash:
25ab7f8c55e4d3f4a1134e4eb1c1ea58a9c3b1664a2ce04a7087d07087f3aa6c
Most változtassunk egy karaktert:
almafa
- SHA-256 hash:
b57c234a12fe7c3654c1538d44f8e28f5e1db5c41d8c9b95adfcb40f9e2d0a02
Látható: teljesen más hash lett → ez az avalanche effect.
⚠️ Fontos tudnivalók
- A hash érték nem titkosítja az adatot – csak “összefoglalja” azt.
- Hash ütközés: ha két különböző bemenet azonos hash-t ad – ez kritikus hiba!
- Ezért használunk erős hash algoritmusokat biztonságos alkalmazásokban (pl. SHA-256, SHA-3, BLAKE3)
🧠 Összefoglalás
A hash függvény egy gyors, egyirányú, fix hosszú eredményt adó algoritmus, amit jellemzően: - Adatintegritás ellenőrzésre - Jelszóellenőrzésre - Digitális aláírásokhoz - Blockchainhez használunk.
A jó hash algoritmus ütközésálló, visszafejthetetlen, és kisebb bemeneti változásokra is radikálisan más kimenetet ad.
- hash function - Szótár.net (en-hu)
- hash function - Sztaki (en-hu)
- hash function - Merriam–Webster
- hash function - Cambridge
- hash function - WordNet
- hash function - Яндекс (en-ru)
- hash function - Google (en-hu)
- hash function - Wikidata
- hash function - Wikipédia (angol)