Mi ez az eszköz?
Egy hash-függvény bármilyen bemenetet fogad, és egy fix hosszúságú hexadecimális karakterláncba, úgynevezett lenyomatba alakítja. Ugyanaz a bemenet mindig ugyanazt a lenyomatot adja, és akár egyetlen karakter megváltoztatása is teljesen más eredményt ad. Ez az eszköz öt széles körben használt algoritmust — MD5, SHA-1, SHA-256, SHA-384 és SHA-512 — futtat ugyanazon a bemeneten, hogy összehasonlíthasd őket, vagy kiválaszd, amelyikre szükséged van.
Ezek a lenyomatok egyirányúak: matematikailag lehetetlen az eredeti szöveget visszaállítani egy hashből. Amit sokan online "hash visszafejtésnek" hívnak, az valójában egy keresés — az oldal csak azt ellenőrzi, hogy a hash-ed megegyezik-e milliárdnyi előre kiszámított, gyakori jelszavakhoz és kifejezésekhez tartozó hashsel. Ha a bemeneted nincs a táblázatukban, nem található meg, mert nincs futtatható inverz függvény.
A SHA-2 család (SHA-256, SHA-384, SHA-512) szabványosítva van a NIST FIPS 180-4 dokumentumában, és továbbra is feltöretlen. Az MD5 és a SHA-1 más történet: gyakorlati ütközéses támadásokat mutattak be az MD5 ellen 2004-ben és a SHA-1 ellen 2017-ben (a "SHAttered" támadás), így mindkettőt kriptográfiailag töröttnek tekintik.
Miért érdemes használni?
- Öt hash-algoritmust számol ki egyszerre, ahelyett hogy eszközök között kellene váltani.
- Hasonlíts össze egy MD5, SHA-1 vagy SHA-256 ellenőrzőösszeget egy közzétett értékkel az integritás ellenőrzéséhez.
- Generálj erősebb SHA-384 vagy SHA-512 lenyomatokat olyan alkalmazásokhoz, amelyek hosszabb kimenetet igényelnek.
- Építs determinisztikus azonosítókat vagy gyorsítótár-kulcsokat tetszőleges szövegből.
- 100%-ban helyi: a bemeneted sosem hagyja el a böngészőt, így érzékeny szövegekhez is biztonságos.
Használati útmutató
- Írd vagy illessz be a szöveged a mezőbe.
- Kattints a "Generálás" gombra.
- Olvasd le az MD5, SHA-1, SHA-256, SHA-384 és SHA-512 eredményeket (pipáld be a "Nagybetűs kimenet" opciót, ha a célrendszered nagybetűket vár).
- Kattints a "Másolás" gombra a szükséges hash mellett.
Példa
Bemenet
helloKimenet
MD5: 5d41402abc4b2a76b9719d911017c592
SHA-1: aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d
SHA-256: 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824A hashek determinisztikusak: a "hello" ezeket a pontos értékeket adja minden eszközön, minden alkalommal.
Csak egy algoritmusra van szükséged?
Ha már tudod, melyik algoritmusra van szükséged, és nem akarod, hogy a többi zsúfolttá tegye az oldalt, a célzott, egyalgoritmusos eszközeink gyorsabban átfuthatók.
Az öt algoritmus összehasonlítása
Mind az öt egyirányú hash-függvény, de eltér a kimeneti hosszuk és a biztonsági erősségük.
| Algoritmus | Kimeneti méret | Biztonsági állapot | Jellemző felhasználás |
|---|---|---|---|
| MD5 | 128 bit (32 hex karakter) | Törött — ütközések generálhatók | Ellenőrzőösszegek, gyorsítótár-kulcsok, duplikátumszűrés |
| SHA-1 | 160 bit (40 hex karakter) | Törött — gyakorlati ütközéses támadások léteznek 2017 óta | Csak örökölt rendszerekkel való kompatibilitáshoz |
| SHA-256 | 256 bit (64 hex karakter) | Biztonságos, jelenlegi iparági szabvány | Digitális aláírások, TLS, blokklánc, integritásellenőrzések |
| SHA-384 | 384 bit (96 hex karakter) | Biztonságos, hosszabb kimenet, mint a SHA-256 | Magas biztonsági szintű aláírások, néhány TLS/PKI beállítás |
| SHA-512 | 512 bit (128 hex karakter) | Biztonságos, itt a legnagyobb kimenet | Maximális lenyomathosszúságot igénylő alkalmazások |
Gyakori felhasználási esetek
- Egy letöltött fájl ellenőrzése a kiadó közzétett ellenőrzőösszegével, mielőtt futtatnád.
- Determinisztikus gyorsítótár-kulcsok vagy azonosítók generálása tetszőleges szövegből.
- Annak ellenőrzése, hogy két dokumentum vagy rekord bájtra azonos-e, közvetlen összehasonlítás nélkül.
- Erősebb lenyomat (SHA-384/SHA-512) készítése, amikor egy alkalmazás kifejezetten ezt kéri.
Gyakori kérdések
Vissza tudom fejteni egy hasht az eredeti szöveggé?
Nem. A hashelés úgy van tervezve, hogy egyirányú legyen — nincs kulcs, és nincs olyan matematikai művelet, ami visszafordítana egy lenyomatot a bemenetévé. Az olyan oldalak, amelyek azt állítják, hogy "MD5-öt" vagy "SHA-256-ot dekódolnak", valójában egy hatalmas, előre kiszámított gyakori bemenet-hash táblát keresnek. Ha az eredeti szöveged elég szokatlan volt ahhoz, hogy ne szerepeljen ebben a táblában, egyszerűen nem állítható vissza, senki által.
Akkor hogyan ellenőrzik az oldalak a jelszavamat anélkül, hogy sima szövegként tárolnák?
A jelszavad hashjét tárolják, nem magát a jelszót. Amikor bejelentkezel, hashelik, amit beírtál, és összehasonlítják a két hasht. Ha egyeznek, a jelszavak is egyeztek — anélkül, hogy az oldalnak valaha is tárolnia vagy "visszafejtenie" kellene a tényleges jelszavadat.
Melyik algoritmust használjam?
Biztonságérzékeny célokra (aláírások, tanúsítványok, letöltések ellenőrzése) használj SHA-256-ot vagy magasabbat — az MD5 és a SHA-1 kriptográfiailag töröttek, és nem szabad bennük megbízni biztonsági célokra. Nem biztonsági célokra, mint ellenőrzőösszegek, gyorsítótár-kulcsok vagy duplikátumszűrés, az MD5 még mindig megfelelő és gyorsabban számítható.
Miért kapok más hasht, mint egy másik eszköz ugyanarra a szövegre?
Általában egy láthatatlan különbség miatt: egy záró sortörés vagy szóköz, eltérő sorvégek (\r\n vs \n), vagy eltérő szövegkódolás. Bájtra azonos bemenet mindig azonos hasht ad minden helyes implementáción.
Elküldi a szövegemet egy szervernek?
Nem. Az MD5 a böngésződben futó JavaScripttel számítódik ki, a SHA-1/SHA-256/SHA-384/SHA-512 pedig a böngésződbe épített Web Crypto API-t használja. Semmi sem hagyja el az eszközödet.
Melyik hasht kellene valójában használnom?
Ha bármi biztonsággal kapcsolatos múlik rajta — fájlintegritás-ellenőrzés, aláírások, jelszóhoz kapcsolódó felhasználás —, válaszd a SHA-256-ot: ez a NIST FIPS 180-4 szabvány, és a legtöbb szoftver ebben terjeszti az ellenőrzőösszegeket. Az MD5 és a SHA-1 csak nem biztonsági célokra elfogadható, mint gyorsítótár-kulcsok, duplikátumszűrés, vagy egy örökölt rendszerrel való illeszkedés, ami megköveteli őket.