Generator SHA-3 hash (Keccak SHA3-256)
Generuj hashe SHA-3 online za darmo. Konstrukcja gąbki NIST FIPS 202 — standard po SHA-2. Wyjście SHA3-256 w 64 znakach hex. Tylko przeglądarka przez lazy-loaded js-sha3; zero przesyłania.
Czym jest SHA-3?
SHA-3 (Secure Hash Algorithm 3) to trzecia generacja standardu Secure Hash Standard NIST, wystandaryzowana w FIPS 202 w sierpniu 2015 roku. W odróżnieniu od SHA-1 i SHA-2, które opierają się na konstrukcji Merkle-Damgård, SHA-3 używa radykalnie innego projektu zwanego konstrukcją gąbki — wybór dokonany przez NIST celowo, aby zapewnić, że kryptanalityczne złamanie SHA-2 nie skompromitowałoby automatycznie SHA-3.
Konkurs NIST SHA-3 (2007–2012): NIST solicytował publiczne zgłoszenia na całym świecie w 2007 roku. Po trzech rundach oceny 64 kandydatów zostało zawężonych do pięciu finalistów: BLAKE, Grøstl, JH, Keccak i Skein. W październiku 2012 roku Keccak — zaprojektowany przez Guido Bertoni, Joan Daemen, Michaëla Peetsa i Gillesa Van Assche'a ze STMicroelectronics i NXP Semiconductors — został wybrany zwycięzcą. Wszyscy pięciu finalistów uznano za bezpiecznych; unikalny projekt oparty na gąbce Keccak dał mu strukturalną różnorodność, którą NIST priorytetyzował.
Konstrukcja gąbki: SHA-3 pochłania dane wejściowe do stanu 1600-bitowego (permutacja Keccak-f[1600]) w fazie pochłaniania, a następnie wyciska bity wyjściowe ze stanu w fazie wyciskania. Dla SHA3-256 podział tempa/pojemności wynosi 1088/512 bitów. Ponieważ w wyjściu pojawiają się tylko 256 z 1600 bitów stanu wewnętrznego, atakujący nie może odtworzyć pełnego stanu z hasha — czyniąc ataki rozszerzenia długości strukturalnie niemożliwymi. Kontrastuje to z SHA-256, gdzie pełny stan wewnętrzny jest ujawniony w wyjściu, wymagając HMAC, aby zapobiec rozszerzeniu długości.
SHA-3 vs Keccak — różnica wypełnienia: NIST zmodyfikował oryginalne zgłoszenie Keccak, zmieniając bajt separacji domeny z 0x01 na 0x06. Oznacza to, że NIST SHA3-256 i oryginalny Keccak-256 produkują różne 64-znakowe wyjścia hex dla każdego wejścia. Nie jest to kwestia teoretyczna — właśnie dlatego keccak256 Ethereum (zamrożony przed finalizacją FIPS 202) różni się od wyjścia SHA3-256 tego narzędzia dla tego samego ciągu. Nigdy nie używaj tego narzędzia do replikowania wyprowadzania adresu Ethereum.
FIPS 202 definiuje cztery warianty SHA-3: SHA3-224 (56 znaków hex), SHA3-256 (64 znaki hex), SHA3-384 (96 znaków hex), SHA3-512 (128 znaków hex). Narzędzie implementuje SHA3-256, najczęstszy wariant i ten, który jest najbardziej bezpośrednio porównywalny z SHA-256.
Uwaga dotycząca biblioteki: SHA-3 nie jest jeszcze w specyfikacji Web Crypto API przeglądarki (crypto.subtle obsługuje tylko SHA-1, SHA-256, SHA-384, SHA-512). Narzędzie lazy-ładuje bibliotekę JavaScript js-sha3 (~10 KB skompresowane gzip) przy pierwszym użyciu. Po tym jednorazowym pobraniu całe obliczenie działa lokalnie w przeglądarce — żadne dane wejściowe nie są nigdy przesyłane.
Kiedy używać SHA-3: nowe protokoły wymagające strukturalnej różnorodności od SHA-2; MAC oparte na kluczu bez owijacza HMAC (KMAC128/256 według NIST SP 800-185); zabezpieczenie postkwantowe jako backup SHA-2; zgodność z systemami nakazującymi FIPS 202. Kiedy pozostać przy SHA-256: powszechna obsługa bibliotek, akceleracja sprzętowa (rozszerzenia SHA-NI), istniejąca kompatybilność protokołów i większość codziennych przypadków użycia integralności, gdzie SHA-256 jest już ustanowionym standardem.
// SHA-3 (NIST FIPS 202 SHA3-256) using js-sha3 library
import { sha3_256 } from 'js-sha3';
const hash = sha3_256('Hello, World!');
// → '882f4b6991a775295186a4e3cc5ece9fc0b618c8c3e7a7beafdd0f56f13ae43b'
// Note: this differs from Ethereum's keccak256 for the same input:
// keccak256('Hello, World!') = 'acaf3289d7b601cbd114fb36c4d29c85bbfd5e133f14cb355c3fd8d99367964f'
// The difference is the padding byte: 0x06 (SHA-3) vs 0x01 (original Keccak) Przykłady SHA-3
Weryfikacja wektora testowego NIST FIPS 202
abc
3a985da74fe225b2045c172d6bd390bd855f086e3e9d525b46bfe24511431532
SHA3-256("abc") = 3a985da74fe225b2045c172d6bd390bd855f086e3e9d525b46bfe24511431532 — to oficjalny wektor testowy NIST FIPS 202. Wklej „abc” do narzędzia i potwierdź to dokładne wyjście, aby zweryfikować, że obliczasz NIST SHA-3 (nie oryginalny Keccak). Ten pojedynczy test odróżnia implementację SHA-3 zgodną z FIPS od implementacji używającej starszego bajtu wypełniającego Keccak.
Różnica między Keccak a SHA-3 — te same dane wejściowe, inne wyjście
Hello
SHA3-256("Hello") z tego narzędzia (NIST FIPS 202) = 8ca66ee6b2fe4bb928a8e3cd2f508de4119c0895f22df86f0ab7e30e487e4500. Ethereum keccak256("Hello") = 06b3dfaec148fb1bb2b066f10ec285e7c9bf402ab32aa78a5d38e34566810cd2. Te same dane wejściowe, różne 64-znakowe wyjścia hex. Różnica to sufiks wypełniający: NIST SHA-3 używa 0x06, a oryginalny Keccak (co Ethereum zamroziło w 2013 roku) używa 0x01. Ethereum poprzedza standaryzację NIST z 2015 roku i trwale rozgałęziło się od wariantu FIPS 202.
Hash archiwalny postkwantowy
NIST SP 800-57 Part 1 Rev 5 — Recommendation for Key Management
SHA3-256 zapewnia 128-bitową odporność na pre-image przeciwko algorytmowi Grovera na komputerze kwantowym — ten sam skuteczny poziom bezpieczeństwa co SHA-256 przeciwko atakowi kwantowemu. Dla danych, które muszą pozostać odporne na manipulacje poza 2050 rokiem, używanie SHA-3 obok SHA-256 zapewnia głębię obrony: jeśli złamanie zostanie znalezione w konstrukcji jednego algorytmu (Merkle-Damgård dla SHA-2; gąbka Keccak dla SHA-3), drugi pozostaje bezpieczny. Instytucjonalne archiwa i dokumenty rządowe coraz częściej używają manifestów z podwójnym hashowaniem (SHA-256 + SHA3-256) jako zabezpieczenia. Patrz też Generator SHA-256 dla strony SHA-2 tego zabezpieczenia.
Uwierzytelnianie klucza HMAC-SHA3-256
POST /api/ledger
{"amount":250000,"from":"acct-A","to":"acct-B"} HMAC-SHA3-256 to nowoczesna alternatywa dla HMAC-SHA-256 do uwierzytelniania wiadomości opartego na kluczu. Ponieważ konstrukcja gąbki SHA-3 jest natywnie odporna na ataki rozszerzenia długości (faza wyciskania odrzuca stan wewnętrzny), zwykły MAC SHA3-256 oparty na kluczu (KMAC, zdefiniowany w NIST SP 800-185) jest również bezpieczny — w odróżnieniu od surowego SHA-256, który wymaga owijania HMAC w celu obrony przed rozszerzeniem długości. Wklej kanoniczny tekst żądania tutaj, aby sprawdzić odcisk SHA3-256 przed zastosowaniem HMAC.
Jak generować hashe SHA-3
- 1
Wklej tekst w polu wejściowym
Wybierz zakładkę Tekst i wpisz lub wklej dowolny ciąg. Hash SHA3-256 aktualizuje się na bieżąco podczas pisania. Przy pierwszym użyciu biblioteka js-sha3 (~10 KB) jest pobierana i buforowana — możesz zauważyć krótkie opóźnienie przy pierwszym hashowaniu; wszystkie kolejne hashe są natychmiastowe. Algorytm jest już ustawiony na SHA-3 (NIST FIPS 202 SHA3-256).
- 2
Skopiuj 64-znakowe wyjście hex
Kliknij przycisk Kopiuj obok wyniku hash. 64-znakowy ciąg hex małymi literami jest kopiowany do schowka. Użyj przełącznika Wielkie litery, jeśli system docelowy wymaga wielkich liter. To wyjście odpowiada temu, co produkuje dowolna implementacja SHA3-256 zgodna z FIPS 202 — ale pamiętaj, że różni się od keccak256 Ethereum dla tych samych danych wejściowych.
- 3
Weryfikuj za pomocą zakładki Porównaj
Przełącz na zakładkę Porównaj i wklej dwa hashe SHA3-256 obok siebie. Narzędzie używa porównania w stałym czasie do zgłaszania zgodności lub niezgodności bez ujawniania informacji o czasie. Przydatne do weryfikacji wektorów testowych NIST CAVP, sprawdzania manifestów archiwalnych lub potwierdzania, że dwie implementacje SHA3-256 produkują identyczne wyjście.
Szczegóły techniczne
- Algorytm: konstrukcja gąbki Keccak-f[1600]
- SHA3-256 stosuje permutację Keccak-f[1600] (24 rundy operacji theta, rho, pi, chi, iota na tablicy stanu 5×5×64) w konstrukcji gąbki z tempem=1088 bitów i pojemnością=512 bitów. Dane wejściowe są pochłaniane w blokach 136-bajtowych (1088-bitowych); wyciskanych jest 256 bitów wyjścia. Separator domeny FIPS 202 dołącza 0x06 przed wypełnieniem. Implementacja: NIST FIPS 202 (2015) sekcja 6.
- Wyjście: SHA3-256 domyślnie, 64 znaki hex (FIPS 202 definiuje też 224/384/512)
- Narzędzie wyprowadza SHA3-256: zawsze dokładnie 64 znaki szesnastkowe (256 bitów = 32 bajty). NIST FIPS 202 wystandaryzował również SHA3-224 (56 znaków), SHA3-384 (96 znaków) i SHA3-512 (128 znaków) — wszystkie używające tej samej permutacji Keccak-f[1600] z różnymi podziałami tempa/pojemności. Długość wyjścia jest stała niezależnie od rozmiaru wejścia.
- Wydajność: lazy-loaded js-sha3 (~10 KB); ~150–400 MB/s w przeglądarce
- W odróżnieniu od tras SHA-2 (które używają natywnego Web Crypto API przeglądarki), SHA-3 nie jest w specyfikacji Web Crypto. Narzędzie ładuje bibliotekę js-sha3 (~10 KB skompresowane gzip) przy pierwszym użyciu, a następnie ją buforuje. Typowa przepustowość: 150–400 MB/s w JavaScript, wobec 400–700 MB/s dla SHA-256 przez Web Crypto. Do hashowania tekstu (kilobajty) różnica jest niezauważalna. Główny pakiet dla innych tras SHA nie jest dotknięty tym lazy-loadingiem.
- Standardy: NIST FIPS 202 (2015), NIST SP 800-185 (KMAC), NIST IR 8105
- Wystandaryzowany w FIPS 202 (sierpień 2015). NIST SP 800-185 (2016) definiuje KMAC128 i KMAC256 — funkcje MAC oparte na kluczu SHA-3, które są natywnie odporne na rozszerzenie długości bez owijacza HMAC. NIST IR 8105 zaleca warianty SHA-3 dla marginesu bezpieczeństwa postkwantowego. Aktualnie zatwierdzone dla wszystkich poziomów siły bezpieczeństwa do 2030 roku i dalej zgodnie z NIST SP 800-131A Rev 2.
Najlepsze praktyki
- Nie mylić SHA3-256 z keccak256 Ethereum
- To różne algorytmy z różnymi wyjściami dla każdego wejścia. Narzędzie oblicza NIST FIPS 202 SHA3-256 (bajt wypełniający 0x06).
keccak256Ethereum używa oryginalnego wypełnienia Keccak (0x01). Jeśli obliczasz hashe adresów Ethereum, sloty przechowywania EVM lub wyniki keccak256() Solidity, potrzebujesz narzędzia specyficznego dla keccak256 — to narzędzie da błędne odpowiedzi dla tych przypadków użycia. - Używaj SHA-3 jako zabezpieczenia obok SHA-256, nie jako zamiennika
- SHA-3 i SHA-2 używają strukturalnie różnych projektów (gąbka vs Merkle-Damgård). Manifest z podwójnym hashowaniem (SHA-256 + SHA3-256) zapewnia głębię obrony: jeśli kryptanalityczne złamanie zostanie kiedyś znalezione w konstrukcji jednej rodziny, druga pozostaje bezpieczna. Dla długoterminowych danych archiwalnych i dokumentów rządowych NIST zaleca rozważenie tego dwualgorytmicznego podejścia. Do codziennego użytku SHA-256 sam w sobie pozostaje doskonale wystarczający.
- Preferuj KMAC nad HMAC-SHA3-256 dla nowych projektów MAC opartych na kluczu
- NIST SP 800-185 definiuje KMAC128 i KMAC256 — MAC oparte na kluczu zbudowane na SHA-3. Ponieważ konstrukcja gąbki jest natywnie odporna na rozszerzenie długości, KMAC nie potrzebuje podwójnego owijania, którego wymaga HMAC dla bezpieczeństwa. Dla nowych protokołów mających elastyczność w wyborze algorytmu MAC, KMAC128 (128-bitowe bezpieczeństwo) lub KMAC256 (256-bitowe bezpieczeństwo) są czystsze i nieco bardziej wydajne niż HMAC-SHA3-256.
- Używaj porównania w stałym czasie przy weryfikacji hashy SHA-3 w kodzie
- Przy porównywaniu dwóch hashy SHA3-256 w kodzie zawsze używaj funkcji równości w stałym czasie:
crypto.timingSafeEqual()w Node.js,hmac.compare_digest()w Pythonie,subtle.ConstantTimeCompare()w Go. Naiwna równość ciągów (=== lub ==) ujawnia informacje o czasie, które mogą pozwolić atakującemu na odtworzenie oczekiwanego hasha bajt po bajcie. Dotyczy to w równym stopniu SHA-3 i wszystkich innych funkcji hash. Zakładka Porównaj w tym narzędziu już używa porównania w stałym czasie.
Najczęściej zadawane pytania
Czy SHA-3 to to samo co Keccak?
0x01 przed wypełnieniem; NIST SHA-3 (FIPS 202, 2015) dołącza 0x06. Ta jednobajt różnica oznacza, że SHA3-256 i Keccak-256 produkują różne 64-znakowe wyjścia dla każdego wejścia. Algorytmy są skądinąd strukturalnie identyczne — ta sama permutacja Keccak-f[1600], ta sama konstrukcja gąbki. Gdy ktoś mówi „Keccak” w kontekście Ethereum/blockchain, prawie zawsze ma na myśli oryginalny wariant wypełnienia przed FIPS, nie NIST SHA-3. Dlaczego Ethereum używa keccak256, a nie SHA-3?
keccak256 Ethereum używa oryginalnego wypełnienia Keccak (0x01), podczas gdy SHA3-256 tego narzędzia używa wypełnienia NIST FIPS 202 (0x06). Ten sam strukturalny algorytm, różne wyjścia. Nigdy nie używaj tego narzędzia do replikowania wyprowadzania adresu Ethereum ani EVM keccak256 — uzyskasz błędne wyniki. Czym jest konstrukcja gąbki?
Czy powinienem używać SHA-3 zamiast SHA-2?
Czy SHA-3 jest szybszy od SHA-256?
Jak długi jest hash SHA-3 z tego narzędzia?
Czy SHA-3 jest odporny na ataki kwantowe?
Czy moje dane są wysyłane na serwer?
js-sha3 jest pobierany raz z sieci CDN, ~10 KB), całe hashowanie działa całkowicie w przeglądarce w JavaScript. Otwórz Narzędzia deweloperskie → zakładka Sieć podczas hashowania tekstu — zobaczysz zero wychodzących żądań zawierających dane wejściowe. W odróżnieniu od narzędzi SHA-2 na tej stronie (które używają wbudowanego w przeglądarkę Web Crypto API), SHA-3 nie jest jeszcze w specyfikacji Web Crypto, więc wymagana jest biblioteka JavaScript. Pobranie biblioteki to jedyne żądanie sieciowe; tekst nigdy nie opuszcza strony. Patrz też: generator SHA-256 i generator MD5 nie używają żadnej zewnętrznej biblioteki. Czym był konkurs NIST SHA-3?
Czy SHA-3 jest podatny na ataki rozszerzenia długości?
Powiązane narzędzia
Zobacz wszystkie narzędzia →Dekoder JWT
Narzędzia bezpieczeństwa
Dekoduj JWT online darmowym dekoderem JWT. Sprawdź header, payload, signature, claims i wygaśnięcie. W 100% w przeglądarce — token nie opuszcza urządzenia.
Generator MD5 hash i sum kontrolnych plików
Narzędzia bezpieczeństwa
Generuj hashe MD5, SHA-256, SHA-1 oraz SHA-512 online za darmo. Hashuj tekst lub pliki w przeglądarce, weryfikuj sumy kontrolne i kopiuj wyniki. Bez rejestracji.
Generator haseł — konfigurowalny, silny i bezpieczny
Narzędzia bezpieczeństwa
Wygeneruj silne losowe hasła natychmiast — za darmo, w 100% w przeglądarce. Dostosuj długość i znaki, partia do 50 z analizą entropii.
Generator SHA-1 hash (160-bitowy, przestarzały)
Narzędzia bezpieczeństwa
Generuj hash SHA-1 online — 40-znakowy wynik hex, bez przesyłania. Narzędzie dla odcisków Git, weryfikacji starych certyfikatów i audytów migracji. Dane nie opuszczają urządzenia.
Generator SHA-256 hash i sum kontrolnych
Narzędzia bezpieczeństwa
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.
Generator SHA-384 hash (TLS Suite B)
Narzędzia bezpieczeństwa
Generuj hashe SHA-384 online — 96-znakowy wynik hex, odporny na ataki rozszerzenia długości, zgodny z NSA Suite B. Parowany z AES-256-GCM w TLS. Całe hashowanie w przeglądarce przez Web Crypto API.