Fejlesztői Eszközök

Hash Generátor és Ellenőrzőösszeg

Szerezze meg az MD5, SHA-1, SHA-256, SHA-384 és SHA-512 értékeket egyszerre szövegekhez és fájlokhoz. Ellenőrizzen egy letöltött fájlt a hivatalos ellenőrzőösszegével, hogy megbizonyosodjon róla, nem manipulálták. Minden helyben fut, a böngészőjéből semmi sem lép ki.

5 algoritmus egyszerre Szöveg + fájl ellenőrzőösszeg Helyi, nulla feltöltés Azonnali eredmények
Karakterek UTF-8 bájtok

JELLEMZŐK

Mind az öt hash egy oldalon

Gyors ujjlenyomatoktól a biztonságos aláírásokig – minden hash, amire a fejlesztők, üzemeltetők és a letöltés ellenőrzéséhez szükség van.

01

Öt algoritmus

MD5, SHA-1, SHA-256, SHA-384 és SHA-512 együtt jelennek meg a kimeneti bithosszakkal – többé nem kell eszközök között váltani.

02

Valós idejű számítás

Szöveghashek a gépelés közben, nincs szükség gombra kattintani. Eredmények kezdőbetűs írással – kattintson egy sorra a másoláshoz.

03

Fájl integritás ellenőrzés

Húzzon be egy telepítőt, lemezképet vagy archívumot, és hasonlítsa össze a hivatalos ellenőrzőösszeggel a manipulálatlan letöltés megerősítéséhez.

04

Helyi, nulla feltöltés

A SHA család a böngésző beépített Web Crypto API-ját használja. A szövegek és fájlok soha nem hagyják el a számítógépét – a érzékeny tartalmak biztonságban vannak.

05

UTF-8 konzisztens

A szöveg UTF-8 bájtként van kivonatolva, így az eredmény pontosan megegyezik az md5sum, a PHP md5() és a Python hashlib által kapott értékkel.

06

Egy kattintásos másolás

Minden egyes kivonat egyenként másolása, vagy mindegyik szabványos ellenőrző összeg formátumban, amely készen áll a terminálba illesztésre.

Amit a kivonatokról tudnia kell

Az ötlet egyszerű, de a rossz kivonat rossz célra való használata valódi biztonsági hiba.

Pontosan mik azok az MD5 és SHA-1?

Az MD5 (Message-Digest Algorithm 5) tervezője Ronald Rivest volt az MIT-n, és 1992-ben jelent meg RFC 1321 néven, rögzített 128 bites (32 hex karakteres) kivonatot készítve az MD4 utódjaként. A SHA-1-t az Egyesült Államok Nemzeti Biztonsági Ügynöksége tervezte, és 1995-ben jelent meg FIPS 180-1 szövetségi szabványként, amely 160 bitet állít elő. Mindkettő a legszélesebb körben telepített kivonatalgoritmussá vált a következő két évtizedben – fájlok ellenőrző összegei, jelszótárolás, digitális aláírások és Git commit azonosítókhoz használták. Vegye figyelembe, hogy ezek még mindig helyes kivonatokat készítenek ma is; az „nem biztonságos” azt jelenti, hogy az összeütközés-ellenállásuk sérült, nem pedig az, hogy a kimenet hibás.

A kivonatolás, a titkosítás és a kódolás ugyanaz a dolog?

Nem – különböző problémákat oldanak meg. A kódolás (mint például a Base64 vagy az URL kódolás) egy visszafordítható formátumtranszformáció, amelyet bárki meg tud szüntetni, nem biztosít biztonságot. A titkosítás kulccsal visszafordítható: a nyílt szöveg rejtjelezett szöveggé válik, és a megfelelő kulccsal visszafejthető. A kivonatolás egyirányú, nincs kulcsa, és az eredeti nem nyerhető vissza a kivonatból – ujjlenyomatok, integritásellenőrzések és aláírásokhoz használják. Két gyakori félreértés: a Base64 „titkosításként” való kezelése, és annak állítása, hogy egy jelszót „MD5-tel titkosítottak” – ez kivonatolás, és emellett egy nem biztonságos módszer a jelszavak tárolására.

Miért nem fordítható vissza a kivonat az eredetire?

A kivonat egy egyirányú függvény: bármilyen hosszúságú bemenetet rögzített hosszúságú kivonattá tömörít, kiküszöbölve az információ nagy részét. Ahogyan nem lehet reconstructálni egy mondatot a szavak számából, az eredeti nem származtatható a kivonatból. A biztonságos algoritmusokat kifejezetten úgy tervezték, hogy ilyen visszafordítás számítási szempontból nehézkes legyen.

Az MD5 és a SHA-1 még mindig használható?

Arra, hogy ellenőrizzék, egy fájl véletlenül megsérült-e a szállítás során – igen, minden egyes véletlen bájtváltozás gyakorlatilag mindig megváltoztatja az MD5-t. De soha nem biztonsági célokra: mindkettőre léteznek gyakorlati összeütközési támadások (a kutatók képesek két különböző fájlt létrehozni ugyanazzal az MD5-tel az ő ellenőrzésük alatt). Használjon SHA-256 vagy magasabbat jelszavakhoz, aláírásokhoz és tanúsítványokhoz.

Miért különbözik az én kivonatom egy másik eszközéétől ugyanahhoz a szöveghez?

Három szokásos ok: ① különböző karakterkódolás (ez az eszköz mindig UTF-8-at használ; a régebbi eszközök használhattak GBK-t vagy Latin-1-et); ② záró sortörés – a parancssori echo alapértelmezésben hozzáad egyet (használja az echo -n parancsot); ③ véletlen szóköz vagy láthatatlan karakter másoláskor. A kivonatok minden egyes bájtra érzékenyek, tehát egy bájt hibás teljesen megváltoztatja az eredményt.

Miért nem tárolhatók a jelszavak sima MD5/SHA-256-ként?

A szokásos kivonatok gyorsak. Egy kiszivárgott kivonattáblával a támadók másmilliárd tippet tudnak kipróbálni másodpercenként, és a szivárványsorok (rainbow tables) azonnal visszakeresik a gyakori jelszavakat. A jelszavaknak szándékosan lassú, memóriakötött algoritmusokra van szükségük (bcrypt, scrypt, Argon2), minden jelszóhoz egyedi sóval, ami a brútafórzást tiltóan drágává teszi.

Hogyan ellenőrizhetem a letöltött fájl integritását?

Keresse meg a hivatalos oldalon közzétett ellenőrzőösszeget (általában SHA-256), húzza be a letöltött fájlt ide a „Fájl ellenőrzőösszege” fülre, majd illessze be a hivatalos értéket az eredmények feletti mezőbe. Az eszköz az érték hosszából észleli az algoritmust, és zöldre színezi a megfelelő sort, ha a fájl bájtjai pontosan megegyeznek a kiadó által közzétettekkel; piros azt jelenti, hogy a fájl sérült vagy emberközti támadás következtében cserélődött ki – ne futtassa a fájlt.

Melyik öt algoritmust használja

Válasszon a forgatókönyv alapján. Az újabb algoritmusok hosszabb kivonatokat eredményeznek, jobban ellenállnak a támadásoknak, és kiszámításuk kissé több erőforrást igényel.

Algoritmus Bevezetve Kimeneti hossz Biztonság Tipikus használat
MD5 1992 128 bit (32 karakter) Megsértve; ütközések gyakorlatiak Nem biztonsági ujjlenyomatok, duplikációmentesítés, régi rendszerekkel való kompatibilitás
SHA-1 1995 160 bit (40 karakter) Ütközések gyakorlatiak 2017 óta Git előzményazonosítók és más régi rendszerek; új biztonsági célokra nem ajánlott
SHA-256 2001 256 bit (64 karakter) Biztonságos napjainkban Fájlok ellenőrzőösszegei, aláírások, TLS-tanúsítványok, blokkláncok – az univerzális alapértelmezett
SHA-384 2001 384 bit (96 karakter) Biztonságos SHA-512 csonkolt változata olyan megfelelőségi rendszerekhez, amelyek 384 bitet igényelnek
SHA-512 2001 512 bit (128 karakter) Biztonságos Magas biztonságú aláírások; 64 bites processzorokon gyakran gyorsabb, mint a SHA-256

A „biztonságos” azt jelenti, hogy a mai napig nincs gyakorlati nyilvános ütközési támadás. Jelszó tárolásához bármely kiválasztott hash mellett használja a bcrypt/Argon2-t.

Ellenőrzőösszegek: egy letöltött fájl tényleges ellenőrzésének módja

Mire való az az MD5 vagy SHA-256 karakterlánc a letöltési oldalon, hogyan hasonlítsa össze, és mivel hasonlítsa össze – mindent egy helyen.

Miért ellenőrizni egyáltalán

A lemezen lévő fájl nem feltétlenül ugyanaz, mint a szerveren lévő. Egy tízmásodperces ellenőrzőösszeg-összehasonlítás háromféle probléma ellen véd:

Sérülés szállítás közben

Nagy fájlok, folytatható letöltések és instabil hálózatok esetén meglepően gyakran keletkeznek véletlen bájtok; egy sérült telepítő hibaelhárítása sokkal tovább tart, mint tíz másodperc.

Nem szinkronizált tükörök

Sok letöltés valójában tükrökről vagy CDN-ekről származik, ahol a szinkron késés vagy a gyorsítótár hibái elavult kiadást – vagy a fájl felét – eredményezhetik.

Szándékos manipuláció

Ha egy letöltési forrást feltörnek vagy egy nyilvános hálózatot eltérítenek, a fájlokat betörőprogrammal láthatják el. 2016-ban a Linux Mint webhelyét feltörték, és letöltési linkjeit egy betörőprogrammal ellátott ISO-ra cserélték – a projekt első válasza arra ösztönözte mindenkit, hogy ellenőrizze az ellenőrzőösszeget.

Mi az az ellenőrzőösszeg

A kiadó kiszámítja a fájl ellenőrző összegét a szerverén, és közzéteszi az eredményt a letöltési oldalon. A letöltés után Ön is helyben kiszámítja ugyanezt az értéket. Ha a két karakterlánc teljesen megegyezik, a fájl bájtjai pontosan olyanok, mint amit a kiadó kiadott – nem sérült és nem módosult. Az ellenőrzés minden bájtra érzékeny: egyetlen bájt megváltoztatása is teljesen megváltoztatja az értéket. Tágabb értelemben az ellenőrző összegek közé tartoznak az egyszerűbb sémák, mint például a CRC32, amelyek csak a véletlenszerű sérülést észlelik, míg a kriptográfiai kivonatok, mint az MD5/SHA, a szándékos hamisítás ellen is védelmet nyújtanak.

Ellenőrizzen egy fájlt három lépésben

  1. 1
    Szerezze be a hivatalos ellenőrző összeget

    A letöltési oldalon keresse meg a közzétett MD5 vagy SHA-256 értéket (általában „checksum”-ként jelölik, vagy egy .sha256 mellékfájlként érkezik), és másolja ki a teljes karakterláncot.

  2. 2
    Húzza be a fájlt és illessze be

    Váltson a fent lévő „Fájl ellenőrző összeg” fülre, húzza be a letöltött fájlt, majd illessze be az ellenőrző összeget az eredmények feletti mezőbe.

  3. 3
    Olvassa le az eredményt a szín alapján

    Az eszköz észleli az algoritmust az érték hosszából: a zöld szín azt jelenti, hogy a fájl pontosan megegyezik a hivatalos kiadással, és biztonságosan használható; a piros szín arra utal, hogy a fájl sérült vagy módosult – ne futtassa.

Az ellenőrző összegek olvasása a hivatalos oldalakon

A letöltési oldalak különféle formátumban írják az ellenőrző összegeket, de mindegyik két elemből áll: a kivonat értékéből és a fájl nevéből. A három leggyakoribb forma, amikor beillesztésnél csak a kivonat részt vegye – ez az eszköz automatikusan figyelmen kívül hagyja a szóközöket és a sortöréseket:

# 1. Egysoros: csak az érték
a0570aa01532917be820a37994710cf09b6eba198bf9543c27be938c5f09e60a

# 2. sha256sum formátum: érték + két szóköz + fájlnév (a SHA256SUMS jegyzékfájl sok ilyen sort tartalmaz)
a0570aa01532917be820a37994710cf09b6eba198bf9543c27be938c5f09e60a  ubuntu-24.04.iso

# 3. BSD formátum: Algoritmus (fájlnév) = érték
SHA256 (ubuntu-24.04.iso) = a0570aa01532917be820a37994710cf09b6eba198bf9543c27be938c5f09e60a

MD5 vagy SHA-256

Mindig a hivatalos oldalon megadott értéket ellenőrizze, de ha választhat: az MD5 teljesen megfelelő a szállítás során bekövetkező véletlenszerű sérülések ellen (minden véletlen változtatás gyakorlatilag mindig megváltoztatja az MD5 értéket). A szándékos manipuláció ellen – biztonsági szoftverek, tanúsítványok, aláírt csomagok esetén – SHA-256 vagy annál erősebbre van szüksége, mivel a gyakorlati ütközési támadások lehetővé teszik a támadók számára, hogy két különböző fájlt azonos MD5 kivonattal hozzanak létre. Ez a történet alább a „biztonsági történelem” részben olvasható.

Ellenőrzés a parancssor helyett

Linuxon és macOS-en az ellenőrző összeg eszközök az -c kapcsolóval lehetővé teszik egy teljes jegyzékfájl automatikus ellenőrzését – nincs szükség manuális összehasonlításra. A Windows beépített parancsai csak az értéket számítják ki, amelyet Ön hasonlít össze a hivatalos karakterlánccal.

Környezet Ellenőrző parancs
Linux sha256sum -c SHA256SUMS (a jegyzékfájlban felsorolt összes fájlt ellenőrzi)
macOS shasum -a 256 -c checksum.txt
Gyors egyszerű ellenőrzés echo „hivatalos-érték fájlnév” | sha256sum -c - (siker esetén OK üzenetet ír ki)
Windows Számítsa ki a Get-FileHash <fájl> -Algorithm SHA256 paranccsal, majd hasonlítsa össze a hivatalos értékkel

Rövid biztonsági történelem: hogyan törték meg az MD5-t

Az MD5 nem egyik napról a másikra bukott meg – az akadémián lévő első áttöréstől a való világban előforduló hamis tanúsítványokig húsz év telt el.

  1. 1992

    Az MD5 közzététele

    Ronald Rivest kiadta az MD5-öt az RFC 1321-ben. Gyors, egyszerű megvalósítani, és mindig 128-bites kivonatot adott. Hamarosan a fájl-összegzések és jelszótárolás de facto standardjává vált – és kriptográfiailag biztonságosnak tekintették.

  2. 2004

    Wang Xiaoyun csapat felfedi a teljes MD5-ütközést

    A CRYPTO 2004 rendezvényen a kínai matematikus, Wang Xiaoyun vezette csapat bemutatta az MD5 teljes ütközési támadását – két különböző tartalmú fájlt hoztak létre ugyanazzal az hasheléssel (kezdetben körülbelül egy óra alatt egy IBM P690 szuperszámítógépen; a későbbi fejlesztések másodpercekre csökkentették az időt hétköznapi hardveren). Az MD5 ígért ütközésállósága szertefoszlott; az ezt követő álló taps a kriptográfia egyik leghíresebb pillanata lett.

  3. 2008

    Hamisított tanúsítványok jelentek meg a valódi interneten

    Marc Stevens, Alexander Sotirov és mások egy kiválasztott előtagú ütközést használtak egy köztes CA-tanúsítvány hamisítására, amelyet a böngészők megbíztak: a különböző előtagú tanúsítványok ugyanazt az aláírást viselték. A támadó immár „érvényes” HTTPS-tanúsítványokat állíthatott ki bármely hamis webhelyhez. A tanúsítványhitelesítők röviddel ezután abbahagyták az MD5-tanúsítványok kibocsátását.

  4. 2012

    Flame rosszindulatú program támadta a Windowst MD5 használatával

    Az államilag támogatott Flame rosszindulatú program MD5-ütközést használt arra, hogy a Microsoft terminál-kiszolgáló licencelési hatósága aláírjon egy hamis kód-aláíró tanúsítványt, lehetővé téve, hogy a Közel-Keleten terjedjen egy Microsoft által aláírt frissítésnek álcázva. Ez volt az első valós világbeli támadás, amely MD5-ütközést használt; a Microsoft egy sürgősségi javításban visszavonta a tanúsítványt.

  5. 2017

    SHAttered: az SHA-1 megbukott

    A Google és a holland CWI intézet (Marc Stevens et al.) két különböző PDF-fájlt publikált azonos SHA-1 kivonattal – nagyjából 6500 CPU-év és 110 GPU-év költséggel. A böngészők hamarosan megvonják a bizalmat az SHA-1 tanúsítványokkal szemben, és a Git-platformok felgyorsították az onnan való áttérést. A 160-bites korszak véget ért.

Fontos árnyalat: az ütközési támadás nem „töri fel” létező fájl kivonatát – két konkrét fájlt hoz létre, amelyek ugyanazt az értéket hash-elik. De az aláírások és tanúsítványok esetében ez már elegendő a végzetes hamisításhoz.

Hashing a parancssorból

Ha a böngésző nem elérhető, minden operációs rendszer tartalmaz beépített parancsot (a SHA-256 látható).

Környezet Parancs
Linux / macOS sha256sum fájlnév (macOS-on: shasum -a 256 fájlnév)
Windows PowerShell Get-FileHash fájlnév -Algorithm SHA256
Windows CMD certutil -hashfile fájlnév SHA256

Hashing kódban

Minimális példák négy elterjedt nyelven, amikor szkripteket írsz vagy API-kat integrálsz.

JavaScript
async function sha256Hex(data) {
  const bytes = typeof data === "string"
    ? new TextEncoder().encode(data)
    : new Uint8Array(data);
  const digest = await crypto.subtle.digest("SHA-256", bytes);
  return [...new Uint8Array(digest)]
    .map((b) => b.toString(16).padStart(2, "0"))
    .join("");
}

// Text
console.log(await sha256Hex("hello"));

// Files: digest accepts an ArrayBuffer directly
const buf = await file.arrayBuffer();
console.log(await sha256Hex(buf));

A böngésző natív Web Crypto API-ja csak a SHA családot támogatja, és HTTPS-t vagy localhostot igényel; az MD5-hez harmadik féltől származó könyvtár szükséges.

PHP
echo hash('sha256', 'hello');        // 64 hex characters
echo md5('hello');                   // same as hash('md5', 'hello')

// Streamed: hashes the file without loading it into memory
echo hash_file('sha256', 'setup.exe');

A hash() és hash_file() függvények támogatják az md5, sha1, sha256, sha512 és másokat; a fájl hashelése streamelt módban történik, ezért kevés memóriát használ.

Python
import hashlib

print(hashlib.sha256(b"hello").hexdigest())
print(hashlib.md5(b"hello").hexdigest())

# Large files: streamed, low memory (Python 3.11+)
with open("setup.exe", "rb") as f:
    print(hashlib.file_digest(f, "sha256").hexdigest())

A hashlib standard könyvtára nem igényel telepítést; használd a file_digest() függvényt nagyméretű fájlok streamelt hasheléséhez (Python 3.11+).

Rust
use sha2::{Digest, Sha256};
use md5::Md5;

// Text
println!("{:x}", Sha256::digest(b"hello"));
println!("{:x}", Md5::digest(b"hello"));

// Large files: streamed, low memory
let mut file = std::fs::File::open("setup.exe")?;
let mut hasher = Sha256::new();
std::io::copy(&mut file, &mut hasher)?;
println!("{:x}", hasher.finalize());

A hashelés nincs benne a standard könyvtárban; add hozzá a RustCrypto sha2 és md-5 cratákat a Cargo.toml fájlhoz. A std funkció engedélyezésével az io::copy fájlokat streamel a hasherbe.

GYIK

Feltöltöttem a szövegeimet és fájljaimat?

Nem. Minden számítás a böngésződben történik: a SHA-család a beépített Web Crypto API-t használja, az MD5 pedig az oldalon futó JavaScriptben. Az eszköz hálózatcsatlakozás nélkül is működik – próbáld ki egy érzékeny fájllal.

Miért van hash az üres szövegnél is?

A hash algoritmusok nulla bájt esetén is egyedi, fix kimenetet adnak. Az üres karakterlánc MD5-e d41d8cd98f00b204e9800998ecf8427e, SHA-256-ja pedig e3b0c442-vel kezdődik. Ez az eszköz csak rejti az eredményeket, ha a bemenet üres, hogy ne másold le őket véletlenül.

Bármilyen méretű fájlt képes hashelni?

A rendelkezésre álló böngésző memóriától függ – a néhány száz MB-os telepítők és lemezképek általában rendben vannak. A fájlok egy menetben kerülnek beolvasásra a memóriába, ezért a több GB-os fájlokhoz jobb a parancssori eszközöket használni (sha256sum, certutil).

Miért különböző hosszúságúak a hashek?

A hosszúságot az algoritmus határozza meg: az MD5 32 hexadecimális karakter, a SHA-1 40, a SHA-256 64, a SHA-512 pedig 128. Egy bájt két hexadecimális karakter – és a hosszúság független a bemenet méretétől: egy egybájtos fájl és egy több GB-os fájl is mindkettő 64 karaktert ad a SHA-256 használatával.

Használhatom API-aláírások készítéséhez?

Igen. Sok nyílt platform az "paraméterek + titok" hashelésével írja alá a kéréseket MD5 vagy SHA-256 használatával. Ez az eszköz kiváló az aláírási érték ellenőrzésére hibakeresés közben; éles környezetben számítsd ki a hasheket a szerveroldali nyelvi könyvtáraddal, és soha ne ágyazd be a titkot a frontend kódba.

Hogyan hasonlíthatok össze egy ellenőrzőösszeget ezzel az eszközzel?

Válts a "Fájl ellenőrzőösszeg" fülre, dobd be a fájlt, és illeszd be az ellenőrzőösszeget a hivatalos webhelyről az eredmények feletti mezőbe. Az eszköz automatikusan felismeri az algoritmust a hosszúság alapján (32 karakter MD5, 40 SHA-1, 64 SHA-256, 96 SHA-384, 128 SHA-512): az egyező sor zöldre vált, "Átment" megjegyzéssel, amikor megegyeznek, és pirosra, amikor nem. A betűk kis- és nagybetűi, a körülvevő szóközök és a sortörések automatikusan figyelmen kívül maradnak.

Kapcsolódó eszközök

További kódolási, kriptográfiai és jelszóeszközök.