Generator Hasha SHA-256

Generuj hash SHA-256 z dowolnego tekstu

Tekst wejściowy

Działa lokalnie · Bezpieczne do wklejania sekretów

Hash SHA-256

Hash SHA-256 będzie wyświetlany tutaj…

Czym jest haszowanie SHA-256?

SHA-256 (Secure Hash Algorithm 256-bit) to kryptograficzna funkcja skrótu z rodziny SHA-2, opublikowana przez NIST w 2001 roku jako część standardu FIPS 180-2 (zaktualizowanego w FIPS 180-4). Dla dowolnych danych wejściowych — pojedynczego znaku, pliku o rozmiarze kilku gigabajtów lub pustego ciągu — SHA-256 produkuje stały 256-bitowy (32-bajtowy) skrót, konwencjonalnie przedstawiany jako 64 znaki szesnastkowe. SHA-256 jest dziś najszerzej stosowaną funkcją skrótu w systemach produkcyjnych — stanowi fundament łańcuchów certyfikatów TLS, mechanizmu proof-of-work w Bitcoinie, Subresource Integrity (SRI) oraz procesów podpisywania kodu.

SHA-256 jest funkcją jednokierunkową: obliczenie skrótu z danych wejściowych jest szybkie (setki megabajtów na sekundę na nowoczesnym sprzęcie), ale odwrócenie tego procesu — znalezienie danych wejściowych, które dają określony skrót — jest obliczeniowo niewykonalne. Ta właściwość, zwana odpornością na atak pierwotnego obrazu (preimage resistance), sprawia, że SHA-256 nadaje się do haszowania haseł (w połączeniu z solą i rozciąganiem klucza), podpisów cyfrowych oraz weryfikacji integralności danych. W odróżnieniu od MD5 i SHA-1, nie wykazano żadnego ataku kolizyjnego ani ataku na preimage przeciwko pełnemu SHA-256.

Rodzina SHA-2 obejmuje sześć wariantów: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224 i SHA-512/256. SHA-256 operuje na 32-bitowych słowach z 64 rundami na blok, zoptymalizowanymi pod procesory 32-bitowe. SHA-512 używa 64-bitowych słów i 80 rund, co może być szybsze na platformach 64-bitowych. Dla większości zastosowań, w których wystarczy 256-bitowy skrót, SHA-256 pozostaje domyślną rekomendacją NIST, IETF i CA/Browser Forum.

Kiedy warto użyć generatora SHA-256 online?

Wygenerowanie skrótu SHA-256 zazwyczaj wymaga polecenia w terminalu lub kilku linii kodu. To narzędzie działające w przeglądarce pozwala obliczać skróty SHA-256 bez instalowania czegokolwiek, przełączania kontekstu ani pisania skryptów.

Natychmiastowe haszowanie w przeglądarce
Wklej lub wpisz dowolny tekst i natychmiast otrzymaj skrót SHA-256. Web Crypto API obsługuje obliczenia natywnie — bez narzutu bibliotek JavaScript.
🔒
Przetwarzanie z zachowaniem prywatności
Twoje dane wejściowe nigdy nie opuszczają urządzenia. Całe haszowanie odbywa się lokalnie za pośrednictwem wbudowanego Web Crypto API przeglądarki. Żadne dane nie są przesyłane na serwer.
📋
Wyniki gotowe do skopiowania
Pobierz skrót w formacie szesnastkowym małymi lub wielkimi literami jednym kliknięciem. Przydatne przy porównywaniu sum kontrolnych z menadżerów pakietów, potoków CI lub dokumentacji.
🔍
Weryfikacja wartości referencyjnych
Szybko sprawdzaj skróty SHA-256 ze stron pobierania, manifestów SBOM lub dzienników audytu bez otwierania terminala ani pisania jednorazowego kodu.

Zastosowania SHA-256

Programista Frontend — Subresource Integrity
Oblicz skrót SHA-256 skryptu lub arkusza stylów hostowanego na CDN, aby wypełnić atrybut integrity w znacznikach script i link, chroniąc się przed atakami na łańcuch dostaw.
Backend Engineer — podpisywanie żądań API
Wiele API (AWS Signature V4, webhooki Stripe) wymaga skrótów SHA-256 treści żądań. Użyj tego narzędzia do obliczania skrótów referencyjnych podczas programowania i debugowania.
DevOps — weryfikacja artefaktów
Weryfikuj sumy kontrolne SHA-256 pobieranych plików binarnych, bazowych obrazów Dockera lub wtyczek dostawców Terraform przed wdrożeniem do infrastruktury produkcyjnej.
QA Engineer — walidacja wektorów testowych
Porównuj wyniki SHA-256 z wektorami testowymi NIST (przykłady z FIPS 180-4), aby potwierdzić, że Twoja implementacja haszowania poprawnie obsługuje przypadki brzegowe.
Data Engineer — odciski palca na poziomie wiersza
Haszuj klucze złożone lub pola PII za pomocą SHA-256, aby tworzyć deterministyczne, nieodwracalne odciski palca do deduplikacji lub pseudonimizacji w potokach danych.
Student — zajęcia z kryptografii
Eksperymentuj z SHA-256, aby zaobserwować efekt lawinowy: zmień jeden znak w danych wejściowych i obserwuj, jak cały 64-znakowy wynik zmienia się w nieprzewidywalny sposób.

Porównanie wariantów rodziny SHA-2

SHA-256 należy do rodziny SHA-2 zdefiniowanej w FIPS 180-4. Każdy wariant oferuje inną kombinację rozmiaru skrótu, charakterystyki wydajnościowej i marginesu bezpieczeństwa. Poniższa tabela porównuje wszystkie warianty SHA-2, z którymi możesz się zetknąć.

WariantRozmiar skrótuDługość hexRozmiar w bajtachNajlepszy do
SHA-256256 bits64 hex chars32 bytesTLS, blockchain, code signing, JWTs, SRI
SHA-224224 bits56 hex chars28 bytesTruncated SHA-256 — rare, specific compliance
SHA-384384 bits96 hex chars48 bytesGovernment / CNSS, higher collision margin
SHA-512512 bits128 hex chars64 bytesDigital signatures, HMAC with large keys
SHA-512/256256 bits64 hex chars32 bytesSHA-512 speed on 64-bit CPUs, 256-bit output

SHA-256 kontra SHA-1 kontra MD5 kontra SHA-3

Wybór właściwego algorytmu skrótu zależy od wymagań bezpieczeństwa i ograniczeń kompatybilności. SHA-256 zajmuje praktyczny punkt środkowy: jest bezpieczny, powszechnie obsługiwany (włącznie z Web Crypto API) i wystarczająco szybki dla większości obciążeń. Poniższa tabela porównawcza obejmuje właściwości najważniejsze przy wyborze funkcji skrótu.

WłaściwośćSHA-256SHA-1MD5SHA-3-256
Digest size256 bits (64 hex)160 bits (40 hex)128 bits (32 hex)256 bits (64 hex)
Security statusSecureBroken (2017)Broken (2004)Secure
Collision resistance2^128 operationsPractical attackPractical attack2^128 operations
Block size512 bits512 bits512 bits1600 bits (sponge)
Rounds64806424
StandardFIPS 180-4FIPS 180-4RFC 1321FIPS 202
Web Crypto APIYesYesNoNo
Primary use todayTLS, blockchain, SRILegacy git onlyNon-security checksumsBackup standard

Jak działa SHA-256 wewnętrznie?

SHA-256 przetwarza dane wejściowe w 512-bitowych (64-bajtowych) blokach przez konstrukcję Merkle–Damgård. Algorytm inicjalizuje osiem 32-bitowych słów stanu (H0–H7) wyprowadzonych z części ułamkowych pierwiastków kwadratowych z pierwszych ośmiu liczb pierwszych. Każdy blok przechodzi przez 64 rundy mieszania wykorzystujące operacje bitowe (AND, XOR, NOT, rotacja w prawo, przesunięcie w prawo) oraz 64 stałe rundy wyprowadzone z pierwiastków sześciennych pierwszych 64 liczb pierwszych.

Input: "hello world"
SHA-256: b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
(256 bits = 32 bytes = 64 hex characters)
KrokOpis
PaddingAppend a 1-bit, then zeros until the message length is 448 mod 512. Append the original message length as a 64-bit big-endian integer.
Block splittingDivide the padded message into 512-bit (64-byte) blocks.
Message scheduleExpand each 16-word (32-bit) block into 64 words using sigma functions with right-rotate and right-shift operations.
CompressionProcess 64 rounds per block using Ch, Maj, and two Sigma functions with 64 round constants derived from cube roots of the first 64 primes.
OutputConcatenate the eight 32-bit state words (H0-H7) into a 256-bit (32-byte) digest, rendered as 64 hexadecimal characters.

Efekt lawinowy zapewnia, że zmiana jednego bitu w danych wejściowych zmienia około 50% bitów wyjściowych. Ta właściwość, w połączeniu z odpornością na kolizje rzędu 2^128, sprawia, że SHA-256 pozostaje bazową rekomendacją dla aplikacji wymagających wysokiego bezpieczeństwa w 2026 roku.

Przykłady kodu SHA-256

SHA-256 jest dostępny natywnie w każdym głównym języku programowania i środowisku uruchomieniowym. Web Crypto API udostępnia go w przeglądarkach bez żadnej biblioteki. Poniższe przykłady przedstawiają rzeczywiste wzorce użycia, w tym obsługę danych wejściowych Unicode i haszowanie plików.

JavaScript (Web Crypto API)
// Works in all modern browsers and Node.js 18+
async function sha256(text) {
  const data = new TextEncoder().encode(text)
  const hashBuffer = await crypto.subtle.digest('SHA-256', data)
  const hashArray = Array.from(new Uint8Array(hashBuffer))
  return hashArray.map(b => b.toString(16).padStart(2, '0')).join('')
}

await sha256('hello world')
// → "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9"

// Node.js (built-in crypto module)
const crypto = require('crypto')
crypto.createHash('sha256').update('hello world').digest('hex')
// → "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9"
Python
import hashlib

# Basic SHA-256 hash
result = hashlib.sha256(b'hello world').hexdigest()
print(result)  # → "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9"

# Hash a string (encode to bytes first)
text = 'café ☕'
hashlib.sha256(text.encode('utf-8')).hexdigest()
# → "3eb53e00aa1bb4b1e8aab1ab38e56e6b8fb0b20e1cf7e1d19f36e4fad2537445"

# Hash a file in chunks (memory-efficient)
with open('release.tar.gz', 'rb') as f:
    sha = hashlib.sha256()
    for chunk in iter(lambda: f.read(8192), b''):
        sha.update(chunk)
    print(sha.hexdigest())
Go
package main

import (
    "crypto/sha256"
    "fmt"
)

func main() {
    data := []byte("hello world")
    hash := sha256.Sum256(data)
    fmt.Printf("%x\n", hash)
    // → b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
}
CLI (Linux / macOS)
# Using sha256sum (Linux) or shasum (macOS)
echo -n "hello world" | sha256sum
# → b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9  -

# macOS
echo -n "hello world" | shasum -a 256
# → b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9  -

# Verify a file checksum
echo "b94d27b...  myfile.bin" | sha256sum -c
# → myfile.bin: OK

# Using openssl (cross-platform)
echo -n "hello world" | openssl dgst -sha256
# → SHA2-256(stdin)= b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9

Najczęściej zadawane pytania

Czy SHA-256 jest nadal bezpieczny?
Tak. Na rok 2026 nie znaleziono żadnego praktycznego ataku kolizyjnego, ataku na preimage ani ataku na second-preimage przeciwko pełnemu SHA-256. NIST, CA/Browser Forum i IETF nadal zalecają SHA-256 do certyfikatów TLS, podpisywania kodu i podpisów cyfrowych. Teoretyczna odporność na kolizje wynosi 2^128 operacji, co daleko przekracza obecne możliwości obliczeniowe.
Jaka jest różnica między SHA-256 a SHA-2?
SHA-2 to nazwa rodziny sześciu funkcji skrótu: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224 i SHA-512/256. SHA-256 jest najczęściej używanym członkiem tej rodziny. Gdy dokumentacja mówi "użyj SHA-2", prawie zawsze oznacza konkretnie SHA-256, chyba że wymagany jest dłuższy skrót.
Czy SHA-256 można odwrócić lub odszyfrować?
Nie. SHA-256 to jednokierunkowa funkcja skrótu, a nie szyfrowanie. Nie istnieje żaden klucz ani proces deszyfrowania. Jedynym sposobem na znalezienie oryginalnych danych wejściowych jest atak brute-force lub słownikowy, który jest obliczeniowo niewykonalny dla wystarczająco złożonych danych wejściowych. Dla krótkich lub przewidywalnych danych wejściowych (takich jak popularne hasła) istnieją tęczowe tablice, dlatego haszowanie haseł powinno zawsze używać soli i dedykowanej funkcji KDF, takiej jak bcrypt lub Argon2.
Jak SHA-256 wypada w porównaniu z SHA-3?
SHA-3 (Keccak, FIPS 202) używa zupełnie innej wewnętrznej struktury (konstrukcji gąbkowej) niż SHA-256 (Merkle–Damgård). Zarówno SHA-256, jak i SHA-3-256 produkują 256-bitowy skrót i oferują równoważną odporność na kolizje. SHA-3 został zaprojektowany jako zapasowe rozwiązanie na wypadek złamania SHA-2, jednak SHA-2 pozostaje niezłamany. SHA-256 ma szersze wsparcie środowisk uruchomieniowych — w szczególności Web Crypto API obsługuje SHA-256, ale nie SHA-3.
Czy SHA-256 nadaje się do haszowania haseł?
Nie bezpośrednio. Surowy skrót SHA-256 hasła jest podatny na ataki brute-force i tęczowe tablice, ponieważ SHA-256 jest zaprojektowany z myślą o szybkości. Do przechowywania haseł używaj dedykowanej funkcji wyprowadzania klucza, takiej jak bcrypt, scrypt lub Argon2id, które dodają sól i konfigurowalny czynnik pracy, spowalniając ataki.
Dlaczego Bitcoin używa podwójnego SHA-256?
Bitcoin oblicza SHA-256(SHA-256(dane)) (znane jako hash256) dla nagłówków bloków i identyfikatorów transakcji. Podwójne zastosowanie chroni przed atakami rozszerzenia długości (length-extension attacks), w których atakujący dołącza dane do wiadomości i oblicza prawidłowy skrót bez znajomości oryginalnych danych wejściowych. Jest to właściwość haszy Merkle–Damgård, której jednorazowy SHA-256 nie zapobiega.
Czym jest Subresource Integrity (SRI) i jak odnosi się do SHA-256?
SRI to specyfikacja W3C pozwalająca przeglądarkom weryfikować, czy pobierany zasób (skrypt, arkusz stylów) nie został zmodyfikowany. Dodajesz atrybut integrity zawierający zakodowany w Base64 skrót SHA-256 (lub SHA-384/SHA-512) oczekiwanej zawartości pliku. Przeglądarka oblicza skrót pobranego pliku i odmawia jego uruchomienia, jeśli skróty nie pasują do siebie. SHA-256 jest minimalnym algorytmem obsługiwanym przez SRI.