raatools/

Hash generátor

Generáljon kriptográfiai hash-eket bármilyen szövegből.

Mi az a kriptográfiai hash?

Egy kriptográfiai hash-függvény tetszőleges bemenetet – egyetlen karaktert, dokumentumot vagy egy teljes fájlt – fogad, és egy rögzített hosszúságú hexadecimális karakterláncot, az úgynevezett digest-et állít elő belőle. Ugyanaz a bemenet mindig ugyanazt a hash-t adja, de még a bemenet legapróbb módosítása is teljesen eltérő kimenetet eredményez. Ezt nevezzük lavinaflatásnak.

A hash-függvények egyirányú műveletek: az eredeti bemenetet nem lehet a hash-ből visszafejteni. Ez alapvetően megkülönbözteti őket a titkosítástól, amelyet arra terveztek, hogy a megfelelő kulccsal visszafejthető legyen. A hash-elést adatintegritás-ellenőrzésre, jelszómentésre, digitális aláírásokra és sok más biztonsági alkalmazásra használják.

Támogatott hash-algoritmusok

  • SHA-1: Az SHA-1 egy 160 bites hash-t (40 hex karaktert) állít elő. Egykor a TLS-tanúsítványok és a Git-commitok szabványa volt, de 2017-ben kriptográfiai gyengeségeket fedeztek fel benne. Az SHA-1-et mostanra biztonsági célokra elavultnak nyilvánították, de nem biztonsági ellenőrző összegekhez még elterjedt.
  • SHA-256: Az SHA-256 egy 256 bites hash-t (64 hex karaktert) állít elő. Ma a legszélesebb körben alkalmazott algoritmus, amely TLS-kapcsolatokat, Bitcoin-tranzakciókat, kódaláírási tanúsítványokat és szoftvercsomagok ellenőrzését biztosítja.
  • SHA-384: Az SHA-384 egy 384 bites hash-t (96 hex karaktert) állít elő. Az SHA-512 egy csonkított változata, amelyet általában TLS-tanúsítványláncokban és HMAC-konstrukciókban alkalmaznak, ahol extra biztonsági tartalékra van szükség.
  • SHA-512: Az SHA-512 egy 512 bites hash-t (128 hex karaktert) állít elő. Az SHA-2 családon belül a legnagyobb szilárdságot kínálja, és 64 bites processzorokon akár gyorsabb is lehet az SHA-256-nál, mert natívan 64 bites szavakon dolgozik.

A hash-elés általános felhasználási területei

  • Fájl integritásának ellenőrzése az ellenőrző összegek letöltés utáni összehasonlításával.
  • Jelszavak biztonságos tárolása adatbázisokban (mindig egyedi sóval felhasználónként).
  • Dokumentumok és szoftvercsomagok digitális aláírásának generálása.
  • Gyorsítótár-érvénytelenítés a webfejlesztésben tartalomhasításnak a fájlnevekhez való hozzáfűzésével.
  • Egyedi, tartalomalapú azonosítók létrehozása elosztott rendszerekben.

Hash vs. titkosítás

A titkosítás visszafordítható – a helyes kulccsal vissza lehet fejteni az adatokat. A hash-elés egyirányú folyamat – a hash-ből nem állítható vissza az eredeti szöveg. Ez teszi a hash-elést ideálissá jelszavakhoz (csak ellenőrzésre, visszaállításra nincs szükség) és integritás-ellenőrzéshez (csak a változások észlelésére van szükség).

Biztonságos-e a szövegem?

Minden hash-elés a böngésző beépített Web Crypto API-ját (crypto.subtle) használja. A szöveg soha nem kerül továbbításra semmilyen szerverre. A Web Crypto API ugyanaz a kriptográfiai motor, amelyet a HTTPS is használ, garantálva az ipari szabványoknak megfelelő implementációkat minden algoritmusnál.

Gyakran ismételt kérdések

Előállíthatnak-e két különböző bemenet azonos hash-t?

Elméletileg igen – ezt ütközésnek nevezzük. Az SHA-256 esetén azonban egy ütközés megtalálásához kb. 2¹²⁸ műveletre lenne szükség, ami a jelenlegi vagy belátható technológiával kivitelezhetetlen. Az SHA-1-ütközéseket már demonstrálták, ez az oka az elavulttá nyilvánításának.

Melyik hash-algoritmust érdemes használni?

A legtöbb célra az SHA-256 a legjobb választás. Erős biztonságot, széles körű kompatibilitást és kiváló teljesítményt nyújt. Használja az SHA-512-t, ha extra biztonsági margóra van szüksége, vagy 64 bites rendszereken dolgozik, ahol gyorsabb lehet. Kerülje az SHA-1-et minden biztonsági szempontból kritikus alkalmazásban.