Skip to content

Generator SHA-256 hash i sum kontrolnych

Generuj hashe SHA-256 online za darmo. Hashuj tekst lub pliki w przeglądarce, weryfikuj sumy kontrolne, kopiuj 64-znakowy wynik hex. Bez rejestracji — dane nie opuszczają strony.

Bez śledzenia Działa w przeglądarce Bezpłatne
Całe hashowanie odbywa się lokalnie w przeglądarce. Żadne dane nie są przesyłane na serwer.
Algorytm
Zweryfikowano poprawność SHA-256 względem wektorów testowych NIST FIPS 180-4 — Zespół inżynierski Go Tools · May 28, 2026

Czym jest SHA-256?

SHA-256 (Secure Hash Algorithm, 256-bitowy) to najszerzej wdrożona kryptograficzna funkcja hash z rodziny SHA-2, zaprojektowana przez Agencję Bezpieczeństwa Narodowego USA i opublikowana przez NIST w 2001 roku jako część FIPS 180-2. Przyjmuje dowolne dane wejściowe — tekst, plik lub strumień bajtów — i produkuje stały 256-bitowy (64 znaki szesnastkowe) odcisk, który jednoznacznie identyfikuje dane wejściowe z kryptograficzną pewnością.

SHA-256 oprał się wszystkim atakom kolizyjnym od czasu publikacji. Specyfikacja NIST FIPS 180-4 pozostaje aktualna; jest zatwierdzona do użytku przez rząd federalny USA, PCI DSS, FIPS 140-3 oraz standardy internetowe IETF. Stanowi podstawę certyfikatów TLS (odcisk wyświetlany przez przeglądarki w oknach informacji o certyfikacie), nowoczesnego formatu identyfikatorów obiektów Git (od Git 2.29 w trybie SHA-256), identyfikatorów transakcji Bitcoin i proof-of-work, weryfikacji podpisów JWT (rodzina JWS HS256, RS256, ES256) oraz kolumny integralności każdego głównego menedżera pakietów (npm, pip, cargo, apt).

Narzędzie oblicza SHA-256 całkowicie w przeglądarce za pomocą crypto.subtle.digest('SHA-256', ...) z Web Crypto API — tego samego prymitywu, którego przeglądarki używają wewnętrznie do uzgadniania TLS. Żadne bajty nie są przesyłane; żaden serwer nie jest zaangażowany. Hash, który widzisz, jest dokładnie tym, co produkuje sha256sum, OpenSSL dgst -sha256 lub Python hashlib.sha256().

Kiedy używać SHA-256: weryfikacja integralności pliku, pamięć adresowana zawartością, przepływy podpisów cyfrowych, odciski certyfikatów, buforowanie za pomocą hash zawartości, deduplikacja. Kiedy nie używać SHA-256: przechowywanie haseł (używaj bcrypt, scrypt lub Argon2 — SHA-256 jest zbyt szybki do ochrony haseł), HMAC bez właściwej konstrukcji (używaj dedykowanej biblioteki HMAC) lub jako ogólny losowy identyfikator (zamiast tego używaj UUID).

Dla porównania: SHA-256 produkuje 64 znaki hex wobec 32 znaków MD5 (złamany od 2004), 40 znaków SHA-1 (złamany od 2017), 96 znaków SHA-384 i 128 znaków SHA-512. 256-bitowe wyjście zapewnia 128 bitów odporności na kolizje — daleko poza zasięgiem jakiegokolwiek przewidywalnego ataku obliczeniowego.

// Hash text using Web Crypto API (SHA-256)
async function sha256(text) {
  const data = new TextEncoder().encode(text);
  const hash = await crypto.subtle.digest('SHA-256', data);
  return Array.from(new Uint8Array(hash))
    .map(b => b.toString(16).padStart(2, '0'))
    .join('');
}

await sha256('Hello, World!');
// → 'dffd6021bb2bd5b0af676290809ec3a53191dd81c7f70a4b28688a362182986f'

Przykłady SHA-256

Weryfikacja pobranego obrazu ISO Ubuntu

ubuntu-24.04.iso

Upuść pobrany obraz ISO do zakładki Plik; narzędzie oblicza SHA-256 fragmentami, wyświetlając postęp dla dużych plików. Porównaj wynikowy hash z plikiem SHA256SUMS publikowanym przez Ubuntu na releases.ubuntu.com. Zgodność potwierdza, że pobranie jest bitowo identyczne z tym, co podpisała firma Canonical — standardowa kontrola integralności dla każdej dystrybucji Linux.

Odcisk certyfikatu TLS

-----BEGIN CERTIFICATE-----MIIDXTCCAkWg...

Wklej treść certyfikatu zakodowanego w formacie PEM (bez znaczników BEGIN/END, jeśli łańcuch narzędzi oczekuje surowego DER hex). Odcisk SHA-256 to to, co pojawia się w oknach informacji o certyfikacie w przeglądarkach i w nagłówkach HTTP Public Key Pinning. Nowoczesne przeglądarki wyświetlają go jako 32 bajty hex rozdzielone dwukropkami; narzędzie podaje niepodzielony 64-znakowy formularz, którego oczekuje większość interfejsów API i plików konfiguracyjnych.

Generowanie hash zawartości do buforowania

/* CSS file contents */

Wzorzec typowy dla stron statycznych: zahashuj zawartość pliku CSS lub JS, dołącz pierwsze 8 znaków hasha jako ciąg zapytania (?v=a1b2c3d4) lub sufiks nazwy pliku (app.a1b2c3d4.css) i serwuj z nagłówkiem cache ważnym przez rok. Gdy zawartość się zmienia, zmienia się hash, unieważniając pamięci podręczne deterministycznie. SHA-256 jest dobrze dopasowany, ponieważ kolizje są w praktyce niewykonalne — nawet skrócony do 8 znaków przypadkowa kolizja jest astronomicznie mało prawdopodobna dla pojedynczej witryny.

Weryfikacja pre-image

password123
ef92b778bafe771e89245b89ecbc08a44a4e166c06659911881f383d4473e94f

Hash SHA-256 ciągu „password123” to ef92b778bafe771e89245b89ecbc08a44a4e166c06659911881f383d4473e94f. Istota tego przykładu to niebezpieczeństwo: nigdy nie używaj czystego SHA-256 do przechowywania haseł — jest zdecydowanie za szybki (nowoczesny GPU wykonuje atak brute-force na miliardy na sekundę). Do haseł używaj bcrypt, scrypt lub Argon2 z odpowiednią solą i parametrami kosztu. SHA-256 jest do integralności, nie do poświadczeń.

Jak generować hashe SHA-256

  1. 1

    Wklej tekst lub upuść plik

    Wybierz zakładkę Tekst i wklej dowolny ciąg do obszaru wejściowego lub przełącz na zakładkę Plik i przeciągnij plik z pulpitu do strefy upuszczania. Selektor algorytmu SHA-256 jest już aktywny. Hashowanie odbywa się na bieżąco podczas pisania — nie ma przycisku Wygeneruj do kliknięcia. W przypadku plików wskaźnik postępu pojawia się przy dużych przesyłaniach (>10 MB).

  2. 2

    Skopiuj 64-znakowy hash

    Kliknij przycisk Kopiuj obok wyjścia hash. Pełna 64-znakowa wartość hex trafia do schowka. Użyj przełącznika Wielkie/małe litery, jeśli system docelowy wymaga określonego przypadku — Git używa małych liter, niektóre narzędzia Windows domyślnie używają wielkich liter.

  3. 3

    Weryfikuj za pomocą zakładki Porównaj

    Przełącz na zakładkę Porównaj i wklej dwa hashe SHA-256 (np. swój i wydawcy). Narzędzie zgłasza zgodność/niezgodność z porównaniem w stałym czasie, dzięki czemu wynik nie ujawnia informacji o czasie. Przydatne do weryfikacji pobranych plików ISO, skrótów obrazów kontenerów lub podpisanych odcisków JAR.

Szczegóły techniczne

Algorytm: rodzina SHA-2, konstrukcja Merkle-Damgård
SHA-256 przetwarza dane wejściowe w blokach 512-bitowych, stosując 64 rundy operacji bitowych (rotacje, XOR, dodawanie modulo 2^32) ze stałymi pochodnymi od pierwiastków sześciennych pierwszych 64 liczb pierwszych. Ostateczny hash to stan wewnętrzny po ostatnim bloku. Implementacja: FIPS 180-4 sekcje 4.2 i 6.2.
Wyjście: 256 bitów, 64 znaki hex
Zawsze dokładnie 64 znaki z zakresu [0-9a-f] (małe litery) lub [0-9A-F] (wielkie litery). Różne kodowania (Base64, Base64URL) skracają ciąg; narzędzie wyświetla kanoniczny formularz hex.
Wydajność: ~500 MB/s w przeglądarce, ~2 GB/s natywnie
Implementacja SHA-256 w Web Crypto to skompilowane C/Rust działające poza maszyną wirtualną JS, więc jest porównywalne z natywnymi narzędziami. Typowa szybkość hashowania w przeglądarce: 300–800 MB/s. Plik 1 GB hashuje się w 1–3 sekundy.
Standardy: FIPS 180-4, RFC 6234, NIST SP 800-107
Aktualnie zatwierdzone przez NIST dla wszystkich poziomów siły bezpieczeństwa do 2030 roku i dalej. Wymagane przez PCI DSS 4.0 dla integralności danych posiadaczy kart, przez FedRAMP i oceny Common Criteria EAL2+.

Najlepsze praktyki

Zawsze hashuj bajty UTF-8, nie punkty kodu Unicode
Różne kodowania tego samego ciągu produkują różne hashe. UTF-8 jest de facto standardem; narzędzie koduje dane wejściowe jako UTF-8 przed hashowaniem. Jeśli chcesz dopasować narzędzie używające UTF-16 (niektóre interfejsy API Windows) lub Latin-1, musisz wstępnie zakodować zewnętrznie.
Używaj porównania w stałym czasie podczas weryfikacji
Jeśli porównujesz dwa hashe w kodzie, użyj sprawdzania równości w stałym czasie (timingsafe_equal w Node.js, hmac.compare_digest w Pythonie). Naiwne === lub strcmp ujawnia informacje o czasie, które mogą być wykorzystane do odtworzenia hasha. Zakładka Porównaj w tym narzędziu już używa porównania w stałym czasie.
Skracanie SHA-256 jest akceptowalne do zastosowań niezwiązanych z bezpieczeństwem
Do nazw plików buforowania lub krótkich identyfikatorów zawartości, wzięcie pierwszych 8 lub 16 znaków hex hasha SHA-256 jest w porządku — prawdopodobieństwo kolizji jest nadal astronomicznie niskie w skali internetu. Do zastosowań kryptograficznych (podpisy, odciski) zawsze zachowaj pełne 64 znaki.
Paruj z solą dla każdego zastosowania opartego na kluczu
Jeśli używasz SHA-256 do wyprowadzania klucza lub tokenu z sekretu, zawsze dołącz unikalną sól dla każdego wejścia. Bez soli identyczne dane wejściowe produkują identyczne hashe — co ujawnia informacje. Lepiej: używaj HKDF (RFC 5869) lub HMAC-SHA-256 zamiast surowego SHA-256 do wyprowadzania kluczy.

Najczęściej zadawane pytania

Czym jest SHA-256 i czym różni się od MD5 lub SHA-1?
SHA-256 to 256-bitowa kryptograficzna funkcja hash z rodziny SHA-2, zaprojektowana przez NSA i wystandaryzowana przez NIST w FIPS 180-4. Produkuje 64-znakowe wyjście szesnastkowe. W odróżnieniu od MD5 (128-bitowy, złamany od 2004 roku) i SHA-1 (160-bitowy, złamany od 2017 roku), SHA-256 pozostaje kryptograficznie bezpieczny: nigdy nie znaleziono praktycznej kolizji. Jest aktualnym standardem branżowym dla podpisów cyfrowych, odcisków certyfikatów, identyfikatorów transakcji blockchain i weryfikacji integralności.
Jak długi jest hash SHA-256?
Zawsze 64 znaki szesnastkowe (256 bitów = 32 bajty, zakodowane jako 2 znaki hex na bajt). Długość wyjścia jest stała niezależnie od rozmiaru wejścia — wejście 1-bajtowe i wejście 10 GB produkują 64 znaki hex. Ta stała długość sprawia, że jest użyteczny jako odcisk.
Czy SHA-256 nadaje się do przechowywania haseł?
Nie. SHA-256 jest za szybki — nowoczesny GPU może obliczać miliardy hashy SHA-256 na sekundę, co jest dokładnie tym, czego chce atakujący do ataku brute-force na hasła. Używaj celowo wolnego algorytmu: bcrypt, scrypt lub Argon2id, każdy z odpowiednią solą i wysokim parametrem kosztu. SHA-256 jest do integralności (weryfikowanie, że dane nie zostały zmodyfikowane), nie do przechowywania sekretów.
Czy SHA-256 można odwrócić, aby znaleźć oryginalne dane wejściowe?
Nie. SHA-256 to funkcja jednokierunkowa: przy danym hashu nie ma efektywnego algorytmu do odzyskania danych wejściowych. Jedynym ogólnym atakiem jest brute-force — próbowanie każdego możliwego wejścia i hashowanie każdego. Dla dowolnych danych wejściowych jest to obliczeniowo niewykonalne. Wyjątek: krótkie, przewidywalne dane wejściowe (typowe hasła, proste słowa) można wyszukać w tęczowych tablicach, dlatego solenie haseł ma znaczenie.
Jaka jest różnica między SHA-256 a SHA-2?
SHA-2 to nazwa rodziny; SHA-256 to jeden konkretny członek. Rodzina SHA-2 obejmuje również SHA-512 (512-bitowy), SHA-384 (skrócony SHA-512), SHA-224 (skrócony SHA-256), SHA-512/224 i SHA-512/256. Wszystkie korzystają z tej samej konstrukcji Merkle-Damgård z różnymi rozmiarami słów i regułami skracania. SHA-256 to najszerzej wdrożony członek — to właśnie jego używają TLS, JWT, Git i Bitcoin domyślnie.
Czy moje dane są wysyłane na serwer?
Nie. SHA-256 jest obliczany całkowicie w przeglądarce za pomocą Web Crypto API (crypto.subtle.digest). Otwórz Narzędzia deweloperskie → zakładka Sieć podczas hashowania — zobaczysz zero wychodzących żądań. Plik upuszczony w trybie Plik jest odczytywany za pomocą FileReader API i hashowany lokalnie; bajty nigdy nie opuszczają maszyny. Sprawia to, że narzędzie jest bezpieczne do hashowania poufnych dokumentów, własnościowego kodu lub wrażliwych sum kontrolnych.
Jak zweryfikować sumę kontrolną SHA-256 z pobrania?
1) Pobierz plik. 2) Otwórz narzędzie i kliknij zakładkę Plik. 3) Przeciągnij plik do strefy upuszczania. 4) Poczekaj na obliczenie hasha (duże pliki zajmują kilka sekund). 5) Otwórz opublikowany przez wydawcę plik SHA256SUMS. 6) Wklej oba hashe do zakładki Porównaj — zielony oznacza zgodność, czerwony oznacza, że plik jest uszkodzony lub zmodyfikowany. Większość dystrybucji Linux, środowisk uruchomieniowych języków (Python, Node.js) i dostawców oprogramowania publikuje sumy kontrolne SHA-256 obok pobrań właśnie w tym celu.
Dlaczego moje wyjście SHA-256 różni się od narzędzia wiersza polecenia?
Prawie zawsze chodzi o białe znaki lub kodowanie. Polecenie powłoki `echo "hello" | sha256sum` zawiera końcowy znak nowej linii (\n), więc hash jest dla "hello\n", a nie "hello". Użyj `echo -n "hello"`, aby go usunąć. Inne pułapki: końce wierszy Windows (\r\n vs \n), BOM UTF-8 lub różnica między hashowaniem bajtów UTF-8 a bajtami UTF-16. SHA-256 jest niezwykle wrażliwy — jeden bajt zmienia całe wyjście.
Czy SHA-256 może hashować pusty plik?
Tak. SHA-256 zera bajtów to dobrze znana stała: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855. Jest to czasami używane jako wartość sentinel lub jako szybka weryfikacja, że potok hashowania jest poprawnie podłączony.
Czy używać SHA-256 czy SHA-512?
Używaj SHA-256 w większości przypadków — jest szybszy na sprzęcie 32-bitowym, powszechnie obsługiwany i zapewnia 128 bitów odporności na kolizje, co więcej niż wystarczy do dowolnego praktycznego zastosowania. Używaj SHA-512, gdy jesteś na sprzęcie 64-bitowym, gdzie jest faktycznie szybszy, lub gdy konkretnie potrzebujesz 256 bitów odporności na kolizje dla protokołów kryptograficznych, które tego wymagają. Do codziennego użytku (sumy kontrolne plików, Git, TLS) SHA-256 jest standardem.

Powiązane narzędzia

Zobacz wszystkie narzędzia →