Generator haszy SHA-256
Wpisz dowolny tekst i natychmiast otrzymaj jego hash SHA-256 — skrót o stałej długości 256 bitów (64 znaki szesnastkowe). Przydatny do sum kontrolnych, weryfikacji integralności i odcisków palców danych.
Wygeneruj hash SHA-256
Wzór hasha SHA-256
Gdzie:
- \(M\) — komunikat wejściowy, zakodowany w UTF-8 i uzupełniony do wielokrotności 512 bitów
- \(M^{(i)}\) — \(i\)-ty 512-bitowy blok komunikatu
- \(H^{(0)}\) — osiem początkowych wartości hasza zdefiniowanych w standardzie FIPS 180-4
- \(\text{compress}\) — funkcja kompresji: 64 rundy dodawań modularnych, rotacji i operacji bitowych wykonywanych na zmiennych roboczych \(a\) do \(h\)
- \(H_j^{(N)}\) — osiem 32-bitowych słów stanu końcowego po przetworzeniu wszystkich \(N\) bloków
- \(\|\) — konkatenacja; osiem 32-bitowych słów jest łączone w 256-bitowy skrót
W przeciwieństwie do prostego wzoru arytmetycznego SHA-256 to algorytm iteracyjny: komunikat jest dzielony na bloki 512-bitowe, każdy blok jest wplatywany w stan wewnętrzny przez 64 rundy operacji bitowych, a stan końcowy jest zwracany jako 64-znakowy ciąg szesnastkowy.
Hash SHA-256 — przykład obliczenia
Przykład: domyślny tekst wejściowy to Hello world! — ta sama wartość jest wstępnie wpisana w kalkulatorze, więc możesz odtworzyć ten wynik.
\[ \text{SHA-256}(\texttt{"Hello world!"}) = \texttt{c0535e4be2b79ffd93291305436bf889314e4a3faec05ecffcbb7df31ad9e51a} \]
Wynik: 64-znakowy skrót szesnastkowy: c0535e4be2b79ffd93291305436bf889314e4a3faec05ecffcbb7df31ad9e51a
Zwróć uwagę, że nawet drobna zmiana wejścia — na przykład dodanie lub usunięcie jednego znaku — daje zupełnie inny hash. To efekt lawinowy, definiujący właściwość bezpiecznych funkcji skrótu.
Jak korzystać z kalkulatora haszy SHA-256
- Wpisz lub wklej swój tekst w pole Tekst do hashowania. Akceptowany jest dowolny tekst, w tym znaki końca linii i znaki Unicode, które są przetwarzane jako UTF-8.
- Obliczenie wykonuje się automatycznie — nie ma przycisku do naciśnięcia. Wynik pojawia się natychmiast pod polem Wynik hashowania.
- Skopiuj wartość Hash SHA-256 (64-znakowy ciąg szesnastkowy) przyciskiem kopiowania i użyj jej wszędzie, gdzie jej potrzebujesz.
- Aby zhashować inny tekst, po prostu zastąp zawartość wejścia; hash aktualizuje się w czasie rzeczywistym.
Czym jest SHA-256?
SHA-256 to kryptograficzna funkcja skrótu z rodziny SHA-2, opublikowana przez amerykański Narodowy Instytut Standardów i Technologii (NIST) w standardzie FIPS 180-4. Przyjmuje wejście o dowolnej długości — pojedynczy znak, hasło albo cały plik — i zwraca stały 256-bitowy wynik, zapisywany zwyczajowo jako 64 znaki szesnastkowe.
SHA-256 ma trzy właściwości, które czynią ją praktycznie użyteczną. Jest deterministyczna: to samo wejście zawsze daje ten sam hash. Jest jednokierunkowa (odporna na odwrócenie obrazu): z samych haszy praktycznie nie da się obliczeniowo odtworzyć oryginalnego wejścia. I jest odporna na kolizje: znalezienie dwóch różnych wejść o tym samym hashu jest przy obecnej technologii praktycznie niemożliwe.
Te właściwości wyjaśniają, gdzie spotkasz SHA-256 w prawdziwym świecie. Weryfikuje ona integralność plików na stronach pobierania i w menedżerach pakietów, zabezpiecza kopanie w modelu proof-of-work i adresy transakcji Bitcoina, chroni certyfikaty TLS/SSL i stanowi podstawę solonych schematów hashowania haseł (choć do haseł preferuje się dziś dedykowane, celowo powolne algorytmy, jak bcrypt czy Argon2). Gdy strona publikuje sumę kontrolną SHA-256 pliku, możesz zhashować swoją pobraną kopię i porównać: identyczne skróty oznaczają, że plik nie został uszkodzony ani naruszony.
Przydatny model mentalny: hash to odcisk palca danych. Dwa identyczne pliki zawsze mają ten sam odcisk, ale odcisk niczego nie mówi o samym pliku, a nie znamy dwóch różnych plików, które miałyby wspólny odcisk.
Ograniczenia i praktyczne wskazówki
- Wejściem jest tekst, nie pliki. Ten kalkulator hashuje tekst, który wpisujesz. Aby zweryfikować pobrany plik, użyj lokalnego narzędzia (
sha256sumna Linuksie,certutil -hashfile plik SHA256na Windows lubshasum -a 256na macOS) i porównaj wynik z opublikowaną sumą kontrolną. - Białe znaki mają znaczenie. Spacja na końcu, znak nowej linii lub inne zakończenie linii dają zupełnie inny hash. Jeśli wklejasz tekst, a wynik nie zgadza się z oczekiwaną wartością, niewidoczne białe znaki to najczęstszy winowajca.
- Hashowanie to nie szyfrowanie. Nie da się „odszyfrować” hasha SHA-256 z powrotem do oryginalnego tekstu. Jeśli potrzebujesz odwracalnego kodowania, użyj zamiast tego kodera Base64 lub dekodera Base64.
- Nie jest idealny do haseł. Zwykły SHA-256 jest szybki, co czyni go podatnym na ataki brute-force i tablice tęczowe przy przechowywaniu haseł. Do tego celu używaj solonych, celowo powolnych algorytmów (bcrypt, scrypt, Argon2).
- Wielkość liter skrótu. To narzędzie zwraca zapis szesnastkowy małymi literami. Skróty wielkimi literami są równoważne —
Aiaoznaczają tę samą wartość. Większość narzędzi porównujących akceptuje obie formy, ale niektóre rozróżniają wielkość liter. - Wybór algorytmu hashowania. SHA-256 jest obecnie bezpieczny i niezłamany. Starsze algorytmy nie są: dla kompatybilności ze starymi systemami możesz jeszcze spotkać hash MD5, ale jest on kryptograficznie złamany i nigdy nie należy go używać do celów bezpieczeństwa.
- Długie wejścia. SHA-256 jest zdefiniowany dla komunikatów o długości do \(2^{64}-1\) bitów (około 2 eksabajtów), co znacznie wykracza poza jakiekolwiek praktyczne wejście tekstowe. Długość wejścia nie zmienia rozmiaru wyniku — to zawsze dokładnie 64 znaki szesnastkowe.
Typowe zastosowania tego kalkulatora
- Generowanie sum kontrolnych do porównywania krótkich ciągów lub fragmentów konfiguracji.
- Sprawdzanie, że tekst został wpisany dokładnie (np. klucze API, ciągi licencyjne, odpowiedzi egzaminacyjne).
- Tworzenie szybkiego, unikalnego identyfikatora lub odcisku palca fragmentu tekstu.
- Odtwarzanie haszy spotykanych w poradnikach, zadaniach CTF i ćwiczeniach programistycznych.
Jeśli pracujesz z tekstem zakodowanym lub przekształconym, przydatne mogą się też okazać konwerter hex lub licznik znaków do sprawdzenia wejścia przed jego zhashowaniem.
Najczęściej zadawane pytania
Jak obliczyć SHA-256 ręcznie lub w kodzie?
Ręcznie haszuje się rzadko — algorytm wymaga 64 rund rotacji bitowych i dodawań modularnych na każdy blok 512-bitowy. W kodzie użyj wbudowanych bibliotek: hashlib.sha256() w Pythonie, crypto.createHash('sha256') w Node.js, hash('sha256', $data) w PHP lub sha256sum w terminalu Linuksa. Ten kalkulator przydaje się, gdy nie masz dostępu do terminala lub chcesz szybko sprawdzić wynik wizualnie.
Czy dwa różne teksty mogą mieć ten sam hash SHA-256?
Teoretycznie tak — każda funkcja mapująca nieskończenie wiele wejść na skończony zbiór 2256 wyników musi mieć kolizje. W praktyce nie znaleziono nigdy żadnej kolizji, a łamanie jej metodą brute-force przy obecnym sprzęcie trwałoby dłużej niż wiek wszechświata. Dlatego SHA-256 nadal jest godny zaufania przy weryfikacji plików, certyfikatów i Bitcoina.
Czy SHA-256 jest odwracalny? Czy mogę odkodować hash z powrotem na tekst?
Nie. SHA-256 to funkcja jednokierunkowa: wynik traci informację, więc wiele wejść daje ten sam skrót i nie istnieje operacja deszyfrowania. Strony „odwracające” hasze działają wyłącznie przez zgadywanie wejść i sprawdzanie, czy ich hash się zgadza. Jeśli potrzebujesz odwracalnej transformacji, użyj narzędzi kodujących, takich jak Base64 — ale nigdy nie traktuj kodowania jako zabezpieczenia.
Dlaczego mój hash nie zgadza się z oczekiwaną wartością?
Najczęstsze przyczyny to niewidoczne różnice w wejściu: znak nowej linii na końcu, spacja na końcu, inne zakończenia linii (CRLF vs LF) albo znaki Unicode, które wyglądają identycznie, ale się różnią (typograficzne vs proste cudzysłowy). Sprawdź też kodowanie znaków — to narzędzie hashuje bajty UTF-8 — oraz to, czy oczekiwany skrót był zapisany wielkimi literami, co jest równoważne, ale może nie przejść porównania uwzględniającego wielkość liter.
Czym różni się SHA-256 od SHA-1 i MD5?
Wszystkie trzy to funkcje skrótu, ale o różnych rozmiarach wyniku i poziomach bezpieczeństwa. MD5 (128 bitów) i SHA-1 (160 bitów) są uznawane za złamane — dla obu istnieją praktyczne ataki kolizyjne, więc nie wolno ich używać do celów bezpieczeństwa. Dla SHA-256 (256 bitów) nie zna się żadnych praktycznych ataków i jest on obecnym standardem certyfikatów, podpisów i sum kontrolnych. Do wszystkiego nowego wybieraj SHA-256.
Czym SHA-256 różni się od SHA-512?
SHA-512 to algorytm z rodziny SHA-2, dający 512-bitowy skrót (128 znaków szesnastkowych) przy użyciu 64-bitowych słów wewnętrznych. SHA-256 używa słów 32-bitowych i 64 rund; SHA-512 — słów 64-bitowych i 80 rund. Oba są bezpieczne. Na procesorach 64-bitowych SHA-512 dla długich wejść może być wręcz szybszy, ale SHA-256 pozostaje szerzej wspierany i jest domyślnym wyborem w większości protokołów.
Czy mogę bezpiecznie używać SHA-256 do hashowania haseł?
Nie sam zwykły SHA-256. Jest zaprojektowany tak, by być szybki, co pozwala atakującym wypróbować miliardy zgadywań na sekundę. Do przechowywania haseł używaj celowo powolnego algorytmu z unikalną solą dla każdego użytkownika — bcrypt, scrypt lub Argon2. Zwykły SHA-256 dobrze nadaje się do sum kontrolnych i kontroli integralności, gdzie szybkość jest zaletą, a nie wadą.