Narzędzia dla developerów

Generator hashu i suma kontrolna

Uzyskaj MD5, SHA-1, SHA-256, SHA-384 i SHA-512 jednocześnie dla tekstu i plików. Sprawdź, czy pobrany plik pasuje do oficjalnej sumy kontrolnej, aby upewnić się, że nie został zmodyfikowany. Wszystko lokalnie, nic nie opuszcza Twojej przeglądarki.

5 algorytmów jednocześnie Suma kontrolna tekstu i plików Lokalnie, zero wysyłania danych Natychmiastowe wyniki
Znaki Bajty UTF-8

CECHY

Wszystkie pięć hashy na jednej stronie

Od szybkich identyfikatorów po bezpieczne sygnatury – każdy hash potrzebny developerom, specjalistom od operacji i do weryfikacji pobrań.

01

Pięć algorytmów

MD5, SHA-1, SHA-256, SHA-384 i SHA-512 pokazane razem z długościami bitów wyników – więcej przełączania się między narzędziami.

02

Obliczanie w czasie rzeczywistym

Hashe tekstu podczas pisania, bez przycisku do naciśnięcia. Wyniki w czcionce stałej szerokości – kliknij wiersz, aby skopiować.

03

Sprawdzanie integralności plików

Upuść instalator, obraz dysku lub archiwum i porównaj go z oficjalną sumą kontrolną, aby potwierdzić, że pobranie nie zostało zmodyfikowane.

04

Lokalnie, zero wysyłania danych

Rodzina SHA korzysta z wbudowanego Web Crypto API przeglądarki. Tekst i pliki nigdy nie opuszczają Twojej maszyny – zawartość wrażliwa jest bezpieczna.

05

Spójność UTF-8

Tekst jest hashowany jako bajty UTF-8, więc wyniki dokładnie pasują do md5sum, funkcji md5() w PHP oraz hashlib w Pythonie.

06

Kopiowanie jednym kliknięciem

Kopiuj każdy osobny hash lub wszystkie w standardowym formacie sum kontrolnych, gotowe do wklejenia do terminala.

Co powinieneś wiedzieć o haszach

Idea jest prosta, ale użycie niewłaściwego haszu do niewłaściwego zadania to prawdziwy błąd bezpieczeństwa.

Czym dokładnie są MD5 i SHA-1?

MD5 (Message-Digest Algorithm 5) został zaprojektowany przez Ronalda Rivesta w MIT i opublikowany w 1992 roku jako RFC 1321, generujący 128-bitowy (32 znaki szesnastkowe) podsumowanie jako następcę MD4. SHA-1 został zaprojektowany przez Agencję Bezpieczeństwa Narodowego USA i opublikowany w 1995 roku jako standard federalny FIPS 180-1, generujący 160 bitów. Oba stały się najszerzej wdrożonymi algorytmami haszującymi w kolejnych dwóch dekadach – używane do sum kontrolnych plików, przechowywania haseł, podpisów cyfrowych oraz ID commitów w Git. Należy pamiętać, że nadal generują poprawne podsumowania; „niebezpieczny” oznacza, że ich odporność na kolizje została złamana, a nie że ich wynik jest niepoprawny.

Czy haszowanie, szyfrowanie i kodowanie to to samo?

Nie – rozwiązują różne problemy. Kodowanie (np. Base64 lub kodowanie URL) to odwracalna transformacja formatu, którą każdy może cofnąć, nie zapewniając żadnego bezpieczeństwa. Szyfrowanie jest odwracalne za pomocą klucza: tekst jawny staje się tekstem zaszyfrowanym, a odpowiedni klucz pozwala go odszyfrować. Haszowanie jest jednokierunkowe, nie ma klucza, a oryginału nie można odzyskać z podsumowania – służy do tworzenia odcisków palców, sprawdzania integralności oraz podpisów. Dwa popularne nieporozumienia: traktowanie Base64 jako „szyfrowania” oraz twierdzenie, że hasło zostało „zaszyfrowane MD5” – to właśnie jest haszowanie, a dodatkowo niebezpieczny sposób przechowywania haseł.

Dlaczego haszu nie można odwrócić do oryginału?

Hash to funkcja jednokierunkowa: dane wejściowe dowolnej długości są kompresowane do podsumowania o stałej długości, usuwając większość informacji. Tak jak nie można odtworzyć zdania na podstawie liczby słów, tak oryginału nie można wyprowadzić z podsumowania. Bezpieczne algorytmy są specjalnie zaprojektowane, aby takie odwrócenie było niemożliwe do wykonania z punktu widzenia obliczeniowego.

Czy MD5 i SHA-1 są nadal użyteczne?

Do sprawdzania, czy plik został przypadkowo uszkodzony podczas transmisji – tak, każda zmiana pojedynczego bajtu praktycznie zawsze zmienia wynik MD5. Jednak nigdy do celów bezpieczeństwa: dla obu algorytmów istnieją praktyczne ataki na kolizje (badacze mogą stworzyć dwa różne pliki o takim samym MD5 pod ich kontrolą). Do haseł, podpisów i certyfikatów używaj SHA-256 lub nowszego.

Dlaczego mój hash różni się od wyniku innego narzędzia dla tego samego tekstu?

Trzy najczęstsze przyczyny: ① inna kodowanie znaków (to narzędzie zawsze używa UTF-8; starsze narzędzia mogą używać GBK lub Latin-1); ② nowy linijka na końcu – polecenie echo domyślnie ją dodaje (użyj echo -n); ② przypadkowa spacja lub niewidoczny znak podczas kopiowania. Hasze są wrażliwe na każdy pojedynczy bajt, więc nawet jedna błędna wartość bajtu całkowicie zmienia wynik.

Dlaczego haseł nie można przechowywać jako zwykłego MD5/SHA-256?

Zwykłe hasze są szybkie. Przy wycieku tabeli hashy atakujący mogą próbować miliardów domniemanych haseł na sekundę, a tabele rainbow natychmiast odwzorowują najczęstsze hasła. Hasła wymagają celowo wolnych, obciążających pamięć algorytmów (bcrypt, scrypt, Argon2) z unikalną solą dla każdego hasła, co sprawia, że siłowe odgadywanie jest zbyt kosztowne.

Jak sprawdzić integralność pobranego pliku?

Znajdź sumę kontrolną opublikowaną na oficjalnej stronie (zwykle SHA-256), przeciągnij pobrany plik do karty „Suma kontrolna pliku” tutaj i wklej wartość oficjalną w polu nad wynikami. Narzędzie wykrywa algorytm na podstawie długości wartości i podświetli odpowiedni wiersz na zielono, jeśli bajty pliku dokładnie odpowiadają tym opublikowanym przez wydawcę; czerwony kolor oznacza uszkodzenie lub podmianę przez osobę trzecnią – nie uruchamiaj tego pliku.

Który z pięciu algorytmów użyć

Wybierz w zależności od scenariusza. Nowsze algorytmy generują dłuższe skróty, lepiej chronią przed atakami i wymagają nieco większego nakładu obliczeniowego.

Algorytm Wprowadzony Długość wyniku Bezpieczeństwo Typowe zastosowanie
MD5 1992 128 bitów (32 znaki) Złamany; kolizje praktyczne Niesłużące bezpieczeństwu identyfikatory, deduplikacja, zgodność ze starszymi systemami
SHA-1 1995 160 bitów (40 znaków) Kolizje praktyczne od 2017 roku Identyfikatory historii Git i inne starsze systemy; nie nadaje się do nowych zastosowań wymagających bezpieczeństwa
SHA-256 2001 256 bitów (64 znaki) Bezpieczny obecnie Sumy kontrolne plików, podpisy, certyfikaty TLS, łańcuchy bloków – uniwersalny standard domyślny
SHA-384 2001 384 bitów (96 znaków) Bezpieczny Skrócony SHA-512 dla systemów wymagających zgodności z regulacjami wymagającymi 384 bitów
SHA-512 2001 512 bitów (128 znaków) Bezpieczny Podpisy o wysokiej wiarygodności; często szybszy od SHA-256 na procesorach 64-bitowych

„Bezpieczny” oznacza brak praktycznych ataków na kolizję w danej chwili. Do przechowywania haseł używaj bcrypt/Argon2, niezależnie od wybranego hasza.

Sumy kontrolne: jak faktycznie zweryfikować pobrany plik

Do czego służy ciąg MD5 lub SHA-256 na stronie pobierania, jak go porównać i z czym porównać – wszystko w tej sekcji.

Dlaczego w ogóle weryfikować

Plik na twoim dysku nie musi być identyczny z plikiem na serwerze. Dziesięć sekund sprawdzenia sumy kontrolnej chroni przed trzema rodzajami problemów:

Uszkodzenie podczas transmisji

Duże pliki pobierane z funkcją wznawiania i przez niestabilne sieci często otrzymują przypadkowe bajty; rozwiązywanie problemów z uszkodzonym instalatorem trwa znacznie dłużej niż dziesięć sekund.

Niesynchronizowane lustrzane serwery

Wiele pobrań pochodzi w rzeczywistości z serwerów lustrzanych lub sieci CDN, gdzie opóźnienie synchronizacji lub błędy pamięci podręcznej mogą dać Ci nieaktualną wersję – lub połowę pliku.

Celowe zmanipulowanie

Gdy źródło pobrania zostanie zhakowane lub publiczna sieć zostanie przejęta, pliki mogą otrzymać backdoory. W 2016 roku strona Linux Mint została zhakowana, a jej linki do pobrania zamieniono na zhakowany ISO – pierwszą reakcją projektu było wezwanie wszystkich do sprawdzenia sumy kontrolnej.

Co to jest suma kontrolna

Wydawca hashuje plik na swoim serwerze i publikuje wynik na stronie pobierania; po pobraniu ty haszujesz go ponownie lokalnie. Jeśli oba ciągi są identyczne, bajty pliku są dokładnie takie same, jak te, które opublikował wydawca – nie są uszkodzone ani podmienione. Sprawdzenie jest wrażliwe na każdy bajt: zmiana nawet jednego bajtu całkowicie zmienia wartość. Ogólnie rzecz biorąc, sumy kontrolne obejmują również prostsze schematy, np. CRC32, które wykrywają tylko przypadkowe uszkodzenia, natomiast hasze kryptograficzne, jak MD5/SHA, dodatkowo chronią przed celowym fałszerstwem.

Weryfikacja pliku w trzech krokach

  1. 1
    Pobierz oficjalną sumę kontrolną

    Na stronie pobierania znajdź opublikowaną wartość MD5 lub SHA-256 (często oznaczoną jako „checksum” lub dołączoną jako plik towarzyszący .sha256) i skopiuj cały ciąg znaków.

  2. 2
    Przeciągnij plik i wklej wartość

    Przełącz się na kartę „File checksum” powyżej, przeciągnij pobrany plik i wklej sumę kontrolną do pola nad wynikami.

  3. 3
    Odczytaj wynik według koloru

    Narzędzie wykrywa algorytm na podstawie długości wartości: zielony kolor oznacza, że plik dokładnie pasuje do oficjalnej wersji i jest bezpieczny do użycia; czerwony kolor oznacza, że plik może być uszkodzony lub podrobiony – nie uruchamiaj go.

Odczytywanie sum kontrolnych na oficjalnych stronach

Strony pobierania zapisują sumy kontrolne w wielu formatach, ale wszystkie sprowadzają się do dwóch elementów: wartości hasza oraz nazwy pliku. Najczęściej występują te trzy formaty – podczas wklejania wystarczy wziąć samą część z haszem (narzędzie automatycznie ignoruje spacje i znaki nowej linii):

# 1. Linia pojedyncza: tylko wartość
a0570aa01532917be820a37994710cf09b6eba198bf9543c27be938c5f09e60a

# 2. Format sha256sum: wartość + dwie spacje + nazwa pliku (manifest SHA256SUMS to wiele takich linii)
a0570aa01532917be820a37994710cf09b6eba198bf9543c27be938c5f09e60a  ubuntu-24.04.iso

# 3. Format BSD: Algorytm (nazwa pliku) = wartość
SHA256 (ubuntu-24.04.iso) = a0570aa01532917be820a37994710cf09b6eba198bf9543c27be938c5f09e60a

MD5 lub SHA-256

Weryfikuj to, co oferuje oficjalna strona, ale jeśli masz wybór: MD5 jest w zupełności wystarczające do ochrony przed przypadkowymi uszkodzeniami podczas transmisji (jakakolwiek nieplanowana zmiana praktycznie zawsze zmienia wartość MD5). Przed celowym podrobieniem – w oprogramowaniu bezpieczeństwa, certyfikatach, podpisanych pakietach – potrzebujesz SHA-256 lub silniejszego algorytmu, ponieważ praktyczne ataki kolizyjne pozwalają atakującym stworzyć dwa różne pliki z takim samym haszem MD5. Szczegóły znajdziesz w sekcji „security history” poniżej.

Weryfikacja z poziomu wiersza poleceń

W systemach Linux i macOS narzędzia do sum kontrolnych akceptują opcję -c do automatycznej weryfikacji całego manifestu – nie potrzebujesz ręcznego porównania. Natomiast wbudowane polecenia systemu Windows obliczają tylko wartość hasza, którą musisz samodzielnie porównać z oficjalną wartością.

Środowisko Polecenie weryfikacyjne
Linux sha256sum -c SHA256SUMS (weryfikuje każdy plik wymieniony w manifeście)
macOS shasum -a 256 -c checksum.txt
Szybkie sprawdzenie pojedynczej wartości echo „oficjalna-wartość nazwa-pliku” | sha256sum -c - (w przypadku powodzenia wyświetli OK)
Windows Oblicz przy użyciu polecenia Get-FileHash <plik> -Algorithm SHA256, a następnie porównaj z oficjalną wartością

Krótka historia bezpieczeństwa: jak złamano MD5

MD5 nie zawiódł z dnia na dzień – od pierwszego załamania w środowisku akademickim po podrobione certyfikaty w praktyce zajęło to dwa dekady.

  1. 1992

    Opublikowano MD5

    Ronald Rivest wprowadził MD5 w ramach RFC 1321. Szybki, prosty w implementacji i zawsze generujący 128-bitowe skróty, szybko stał się de facto standardem sum kontrolnych plików oraz przechowywania haseł — i był uważany za kryptograficznie bezpieczny.

  2. 2004

    Zespół Wang Xiaoyun ujawnia kolizje dla MD5

    Na konferencji CRYPTO w 2004 roku zespół pod kierunkiem chińskiego matematyka Wang Xiaoyun zaprezentował atak wykorzystujący pełną kolizję na MD5 — zbudowanie dwóch plików o różnej zawartości, ale tym samym skrócie (początkowo trwało to około godziny na superkomputerze IBM P690; późniejsze usprawnienia skróciły ten czas do kilku sekund na zwykłym sprzęcie). Gwarantowana odporność MD5 na kolizje przestała istnieć; owacja stojąca, która nastąpiła, stała się jednym z najsłynniejszych momentów w kryptografii.

  3. 2008

    Fałszywe certyfikaty w prawdziwym internecie

    Marc Stevens, Alexander Sotirov i inni wykorzystali kolizję o wybranym prefiksie, aby sfałszować certyfikat pośredniej CA zaufany przez przeglądarki: certyfikaty o różnych prefiksach miały ten sam podpis. Atakujący mógł teraz wystawić „ważne” certyfikaty HTTPS dla dowolnej fałszywej strony. Władze certyfikacyjne wkrótce po tym zaprzestały wystawiania certyfikatów MD5.

  4. 2012

    Złośliwe oprogramowanie Flame atakuje Windows przez MD5

    Finansowane przez państwo złośliwe oprogramowanie Flame wykorzystało kolizję MD5, aby skłonić organ licencyjny terminali Microsoft do podpisania fałszywego certyfikatu podpisywania kodu, umożliwiając mu rozprzestrzenianie się na Bliskim Wschodzie pod przykrywką aktualizacji podpisanej przez Microsoft. Był to pierwszy atak w prawdziwym świecie wykorzystujący kolizję MD5; Microsoft cofnął certyfikat w ramach awaryjnej łatki.

  5. 2017

    SHAttered: SHA-1 upada

    Google oraz holenderski instytut CWI (Marc Stevens i inni) opublikowali dwa różne pliki PDF z identycznym skrótem SHA-1 — za kosztem około 6500 lat pracy procesora i 110 lat pracy procesora graficznego. Wkrótce po tym przeglądarki cofnęły zaufanie do certyfikatów SHA-1, a platformy Git przyspieszyły migrację od niego. Epoka 160-bitowa się skończyła.

Ważna szczególik: atak kolizyjny nie „łamie” skrótu żadnego istniejącego pliku — konstruuje dwa konkretne pliki, których skróty mają tę samą wartość. Jednak dla podpisów i certyfikatów to już wystarcza do śmiertelnej fałszerstwa.

Tworzenie skrótów z linii poleceń

Gdy przeglądarka nie jest pod ręką, każdy system operacyjny ma wbudowane polecenie (pokazano SHA-256).

Środowisko Polecenie
Linux / macOS sha256sum nazwa_pliku (na macOS: shasum -a 256 nazwa_pliku)
Windows PowerShell Get-FileHash nazwa_pliku -Algorithm SHA256
Windows CMD certutil -hashfile nazwa_pliku SHA256

Tworzenie skrótów w kodzie

Minimalne przykłady w czterech popularnych językach, gdy piszesz skrypty lub integrujesz API.

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));

Natywny Web Crypto przeglądarki obsługuje tylko rodzinę SHA i wymaga HTTPS lub localhost; MD5 potrzebuje biblioteki zewnętrznej.

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');

hash() i hash_file() obsługują md5, sha1, sha256, sha512 i inne; tworzenie skrótów plików odbywa się strumieniowo, więc zużywa mało pamięci.

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())

Biblioteka standardowa hashlib nie wymaga instalacji; użyj file_digest() do strumieniowego tworzenia skrótów dużych plików (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());

Tworzenie skrótów nie jest w bibliotece standardowej; dodaj crates RustCrypto sha2 oraz md-5 w Cargo.toml. Po włączeniu funkcji std, io::copy strumieniowo przesyła pliki do hashera.

FAQ

Czy mój tekst i pliki zostały wysłane?

Nie. Wszystko obliczane jest w Twojej przeglądarce: funkcje rodziny SHA używają wbudowanego API Web Crypto, a MD5 działa w skrypcie JavaScript strony. Narzędzie działa również bez dostępu do sieci – wypróbuj je na wrażliwym pliku.

Dlaczego pusty tekst nadal ma swój hash?

Algorytmy hashowania definiują unikalny, stały wynik nawet dla zerowej liczby bajtów. MD5 pustego łańcucha to d41d8cd98f00b204e9800998ecf8427e, a jego SHA-256 zaczyna się od e3b0c442. To narzędzie po prostu ukrywa wyniki, gdy dane wejściowe są puste, abyś nie skopiował ich przez pomyłkę.

Czy może tworzyć hashe plików dowolnej wielkości?

Zależy od dostępnej pamięci przeglądarki – instalatory i obrazy dyskowe o wielkości kilkuset MB zazwyczaj działają poprawnie. Pliki są wczytywane do pamięci w jednym przejściu, więc dla plików o wielkości wielu GB lepiej użyć narzędzi linii poleceń (sha256sum, certutil).

Dlaczego hashe mają różne długości?

Długość jest determinowana przez algorytm: MD5 to 32 znaki szesnastkowe, SHA-1 to 40, SHA-256 to 64, a SHA-512 to 128. Dwa znaki szesnastkowe na bajt – a długość nie zależy od wielkości danych wejściowych: plik o jednym bajcie i plik o wielkości wielu GB dają oba 64 znaki dla SHA-256.

Czy mogę go użyć do tworzenia sygnatur API?

Tak. Wiele otwartych platform podpisuje żądania, tworząc hash z "parametr + tajny klucz" za pomocą MD5 lub SHA-256. To narzędzie jest idealne do sprawdzania wartości sygnatur podczas debugowania; w środowisku produkcyjnym obliczaj hashe w bibliotece języka po stronie serwera i nigdy nie umieszczaj tajnego klucza w kodzie frontendowym.

Jak porównać sumę kontrolną za pomocą tego narzędzia?

Przełącz się na kartę "Suma kontrolna pliku", przeciągnij plik do obszaru i wklej sumę kontrolną z oficjalnej strony w polu nad wynikami. Narzędzie automatycznie wykrywa algorytm po długości (32 znaki MD5, 40 SHA-1, 64 SHA-256, 96 SHA-384, 128 SHA-512): pasujący wiersz zmienia kolor na zielony z notatką "Zgodne", a na czerwony, gdy wartości się nie zgadzają. Wielkość liter, otaczające spacje i znaki nowej linii są automatycznie ignorowane.

Powiązane narzędzia

Inne narzędzia do kodowania, kryptografii i zarządzania hasłami.