Generator skrótów

Oblicz skróty MD5, SHA-1, SHA-256, SHA-384, SHA-512, SHA-3, Keccak-256, RIPEMD-160, BLAKE2b lub BLAKE2s dla dowolnego tekstu lub pliku — przydatne do sum kontrolnych, sprawdzania integralności i kluczy pamięci podręcznej. Wklej oczekiwany skrót, aby sprawdzić go względem wejścia, albo wklej nieznany ciąg skrótu, aby ustalić, który algorytm go prawdopodobnie wytworzył. SHA-1/256/384/512 pochodzą z natywnego WebCrypto przeglądarki; reszta to samodzielne implementacje w czystym JavaScripcie, więc wszystko działa lokalnie. Zobacz też Generator liczb losowych, jeśli potrzebne są losowe ciągi z ziarnem.
Działa w całości lokalnie — nic nie jest wysyłane. Wejścia do 200 MB.
Wejście: Algorytmy:
Format wyjścia: SHA-1 jest przestarzały — wybieraj SHA-256/512, chyba że jest potrzebny.
Wiersze skrótów mają postać „ALGORYTM  skrót”, abyś mógł skopiować je do notatek o wydaniu lub manifestów pobierania.
Wklej skrót podany przez stronę pobierania lub manifest. Narzędzie toleruje wielkość liter, spacje, dwukropki, prefiksy w stylu sha256=, opakowania w stylu MD5 (plik.exe) = i wieloliniowe wyjście md5sum, a następnie porównuje go z zaznaczonymi powyżej algorytmami.
Wklej nieznany ciąg skrótu. Strona odczytuje jego długość, zestaw znaków i prefiksy i wylicza algorytmy, które mogły go wytworzyć — od zwykłego skrótu hex po hasła w formacie PHC, takie jak $2b$… lub $argon2id$….
Wybór algorytmu:
SHA-256 to rozsądny domyślny wybór do kontroli integralności. SHA-512 jest mocniejszy i działa szybciej na sprzęcie 64-bitowym, kosztem dłuższego wyjścia; SHA-384 to środkowa opcja, gdy potrzebny jest skrót SHA-2 o obciętej długości. SHA-3 to niezależnie zaprojektowany standard NIST (nie ulepszenie SHA-2) i standardowa odpowiedź, gdy potrzebny jest algorytm bez wspólnego pochodzenia z SHA-2; Keccak-256 to wariant sprzed standaryzacji używany przez Ethereum i kilka innych systemów, różniący się od SHA3-256 jednym bajtem dopełnienia. BLAKE2b/BLAKE2s to szybkie, nowoczesne skróty zaprojektowane do użytku w oprogramowaniu; RIPEMD-160 to starszy projekt, wciąż używany w kontekstach Bitcoin i OpenPGP. SHA-1 i MD5 są kryptograficznie złamane dla wrogich wejść, ale pozostają poprawne i szeroko używane do deduplikacji, systemów starszych i niewrogich sum kontrolnych — nigdy nie używaj ich tam, gdzie atakujący mógłby wybrać treść. Żaden dziś skrót nie jest „odporny na komputery kwantowe” w tym sensie, w jakim komputery kwantowe zagrażają podpisom i wymianie kluczy w pierwszej kolejności — algorytm Grovera tylko połowi efektywną długość skrótu, więc SHA-256 wciąż ma się dobrze powyżej praktycznej granicy. Skróty są deterministyczne: te same bajty zawsze dają ten sam skrót, co dokładnie czyni je przydatnymi do sprawdzania, czy pobrany plik lub plik konfiguracyjny jest nienaruszony.
Szukasz chińskiego skrótu narodowego?
SM3 (GB/T 32905-2016), skrót wymagany w chińskiej kryptografii komercyjnej, nie jest częścią tej strony — ma własne narzędzie z obsługą HMAC-SM3 na stronie Generator skrótów SM3, obok reszty pakietu SM: SM4 (szyfr blokowy), SM2 (podpisy i szyfrowanie) oraz SM9 (kryptografia oparta na tożsamości).
Generator skrótów — każdy algorytm wyjaśniony od podstaw
W jednym zdaniu: kryptograficzna funkcja skrótu to jednokierunkowy blender — przyjmuje dowolną liczbę bajtów i ściska je do odcisku o stałej długości, tak że to samo wejście zawsze daje ten sam odcisk, ale odcisk nic nie mówi o tym, jak odtworzyć wejście. Ta strona uruchamia jedenaście z nich w całości w karcie przeglądarki.

Każdy algorytm poniżej jest wyjaśniony w tych samych czterech krokach: czym jest prostymi słowami, intuicja działania bez wzorów, czy wciąż warto go używać i jakich błędów ludzie najczęściej popełniają.

MD5

Czym jest. MD5 (1992) ściska dowolne wejście do odcisku 128-bitowego (32 znaki hex). Zaprojektowano go, by był szybki na komputerach lat 90., i rzeczywiście jest — dlatego wciąż jest wszędzie: na stronach pobierania oprogramowania, w pamięciach podręcznych deduplikacji plików, w starszych kluczach baz danych.

Jak to działa, intuicyjnie. Wejście jest cięte na fragmenty po 64 bajty. Każdy fragment jest cztery razy mieszany w 128-bitowym stanie kroczącym (cztery nieco różne rundy mieszania), a po ostatnim fragmencie stan jest wypisywany jako skrót. Mieszanie zbudowano z dodawania, rotacji i wyszukiwań w tablicach — tanio wtedy, tanio teraz.

Czy warto go używać? Do sum kontrolnych, gdy nikt nie próbuje oszukać — wykrywanie uszkodzonego pobrania, szukanie duplikatów plików — tak, nadal doskonale zgłasza uszkodzenia. Do wszystkiego, co wrogie, nie: od 2004 roku badacze potrafią spreparować dwa różne pliki o tym samym MD5 w sekundy, a prawdziwe fałszerstwa certyfikatów z kolizjami MD5 zdarzyły się w 2008. Traktuj go jak numer seryjny, nie jak zamek.

Typowe błędy. Używanie MD5 do haseł (za szybki — zobacz Generator skrótów haseł, co tam faktycznie pasuje); ufanie plikowi, bo „MD5 się zgadza”, gdy atakujący też opublikował MD5; oraz wklejanie całej linii MD5 (plik) = skrót zamiast samego skrótu — pole Weryfikacja powyżej przyjmuje oba.

SHA-1

Czym jest. SHA-1 (1995, NSA) daje skrót 160-bitowy (40 znaków hex). Przez dwadzieścia lat był domyślnym skrótem integralności Gita, certyfikatów TLS i podpisów PGP.

Jak to działa, intuicyjnie. Ten sam przepis rodzinny co MD5, ale z 160-bitowym stanem, 80 rundami mieszania na fragment 64-bajtowy i szerszym zestawem operacji. Dodatkowe rundy miały utrudnić odwrotną inżynierię blendera.

Czy warto go używać? Nie, do czegokolwiek wrogiego. Teoretyczne złamanie stało się praktyczne w 2017 roku, gdy Google wytworzył dwa różne pliki PDF o identycznych wartościach SHA-1 (atak SHAttered, ok. 6500 lat-procesora). Git nadal przechowuje obiekty pod SHA-1, ale traktuje go wyłącznie jako identyfikator i od tej pory dodał wykrywanie kolizji. Do nowej pracy używaj SHA-256 lub SHA-3.

Typowe błędy. Przekonanie, że 160 bitów „wciąż wystarcza” — złamanie dotyczy wewnętrznej struktury, a nie siły brute force; oraz mylenie RIPEMD-160 z SHA-1, bo oba mają 40 znaków hex (pole rozpoznawania je rozróżnia).

SHA-2: SHA-256, SHA-384 i SHA-512

Czym jest. Rodzina SHA-2 (2001, NSA) to koń roboczy współczesnej kontroli integralności. SHA-256 daje 256 bitów (64 znaki hex), SHA-512 daje 512 bitów, a SHA-384 to SHA-512 z wynikiem obciętym do 384 bitów — przydatne, gdy protokół wymaga krótszego znacznika.

Jak to działa, intuicyjnie. Fragmenty po 64 bajty (lub 128 bajtów dla wariantów 512-bitowych) są składane do 8-słowowego stanu przez 64 (lub 80) rund kroków dodawanie-rotacja-mieszanie. W przeciwieństwie do MD5 harmonogram najpierw rozciąga każdy fragment w rozszerzony bufor, co zniwelowało rodzaj ataku, który złamał MD5 i SHA-1. Ciekawostka: na 64-bitowych procesorach SHA-512 jest szybszy niż SHA-256, bo przetwarza dwa razy więcej danych na rundę arytmetyką 64-bitową.

Czy warto go używać? Tak — SHA-256 to dziś domyślna odpowiedź dla sum kontrolnych plików, podpisywania kodu i odcisków certyfikatów, bez znanego praktycznego złamania po dwóch dekadach analiz. Użyj SHA-384/512, gdy potrzebny jest większy margines albo gdy platforma liczy je szybciej.

Typowe błędy. Używanie samego SHA-256 do haseł — to szybki skrót, a szybkość jest tam wrogiem (użyj bcrypt/scrypt/Argon2id); oraz mylenie długości skrótu z siłą w kontekście odporności na kolizje — długość tylko wyznacza sufit.

SHA-3 (SHA3-256 / SHA3-512) i Keccak-256

Czym jest. SHA-3 (2015, zestandaryzowany ze zgłoszenia Keccak przez Bertoniego, Daemena, Peetersa i Van Asche) to trzeci standard skrótów NIST. Nie ma nic wspólnego z wnętrzem SHA-2 — został wybrany właśnie po to, by być niezależną zapasową opcją, gdyby SHA-2 kiedyś upadł.

Jak to działa, intuicyjnie. Zamiast mieszać fragmenty przez mały stan, Keccak wielokrotnie „nasiąka i wyciska”: wejście jest wchłaniane bit po bicie do gąbki 5×5×64-bitowej, cała gąbka jest mieszana stałą permutacją (24 rundy operacji bitowych na całym stanie), a bity skrótu są potem wyciskane. Obraz gąbki to cała idea: bity pojemności nigdy nie są wyprowadzane i to one czynią funkcję jednokierunkową.

Keccak-256 kontra SHA3-256. Różnią się dokładnie jednym bajtem dopełnienia. Pierwotne zgłoszenie zespołu Keccak dopełniało ostatni blok bajtem 0x01; NIST zmienił standardowe dopełnienie na 0x06 (separacja domen). Ethereum przyjęło pierwotne dopełnienie, więc jego „keccak256” różni się od standardowego SHA3-256 dla każdego wejścia. Ta strona oferuje oba, zaznaczane osobno.

Czy warto go używać? Tak — albo jako główny wybór, gdy polityka wymaga algorytmu innego niż SHA-2, albo tam, gdzie ekosystem już go używa. Typowe błędy: zakładanie, że SHA3-256 i Keccak-256 są wymienne (nie są — porównaj dwa wiersze, które ta strona produkuje dla tego samego wejścia); oraz zakładanie, że „SHA-3” zastępuje SHA-2 — oba są bezpieczne, a SHA-2 wciąż jest szerzej wdrożony.

RIPEMD-160

Czym jest. RIPEMD-160 (1996, konsorcjum RIPE europejskich naukowców, wzmocnione przez Dobbertina, Bosselaersa i Preneela) daje 160 bitów. To w całości europejski projekt, celowo niezależny od rodziny SHA zaprojektowanej przez NSA.

Jak to działa, intuicyjnie. Każdy fragment 64-bajtowy jest przetwarzany przez dwie równoległe linie po 80 rund z różnymi stałymi i wartościami rotacji; na końcu obie linie i stary stan są łączone. Struktura dwutorowa była sposobem projektantów na odporność na ataki różnicowe, które łamały inne skróty z lat 90.

Czy warto go używać? W praktyce przetrwał głównie w innych systemach: adresy Bitcoin hashują klucze publiczne przez RIPEMD-160(SHA-256(pk)), starsze klucze OpenPGP oferują go jako opcję skrótu, a jest tradycyjnym skrótem dla fragmentów BitTorrent v1 obok SHA-1. Nie ma praktycznego ataku na kolizje, ale rozmiar 160 bitów daje mu najmniejszy margines bezpieczeństwa na tej stronie. Do nowych samodzielnych zastosowań wybierz SHA-256 lub SHA-3.

Typowe błędy. Przekonanie, że dwie równoległe linie czynią go „dwa razy silniejszym” — o odporności na kolizje decyduje rozmiar wyjścia; oraz mylenie z SHA-1 (ta sama długość 40 znaków hex; pole rozpoznawania wymienia obie możliwości obok siebie).

BLAKE2b-512 i BLAKE2s-256

Czym jest. BLAKE2 (2013, Aumasson, Neves, Wilcox-O’Hearn i Winnerlein) to funkcja skrótu zaprojektowana z myślą o szybkości w oprogramowaniu: BLAKE2b celuje w platformy 64-bitowe z wyjściem do 512 bitów, BLAKE2s w platformy 32-bitowe z wyjściem do 256 bitów.

Jak to działa, intuicyjnie. Pochodzi od finalisty konkursu SHA-3, BLAKE, którego rdzeniem jest permutacja z kluczem zapożyczona z szyfru strumieniowego ChaCha: macierz słów 4×4 jest mieszana naprzemiennie krokami mieszania kolumn i przekątnych — jak tasowanie siatki najpierw z góry na dół, potem wzdłuż przekątnych — przez 12 (BLAKE2b) lub 10 (BLAKE2s) rund na fragment. Ponieważ te kroki świetnie odwzorowują się na instrukcje procesora, BLAKE2 bywa szybszy niż MD5, zachowując bezpieczeństwo porównywalne z SHA-3.

Czy warto go używać? Tak — to w pełni nowoczesny, niezłamany projekt, popularny w oprogramowaniu wrażliwym na wydajność (integralność pakietów w niektórych ekosystemach, przechowywanie adresowane zawartością, deduplikacja kopii zapasowych) i jako szybki MAC. Na tej stronie BLAKE2b-512 daje najdłuższe skróty, a BLAKE2s-256 zwarty, nowoczesny wybór.

Typowe błędy. Myślenie, że „szybciej musi znaczyć słabiej” — BLAKE2 jest szybszy z założenia, a nie przez skróty w rogach; oraz niewiedza, że BLAKE2 przyjmuje też klucz (staje się wtedy MAC) lub ciąg personalizacji — ta strona zawsze używa go w trybie bez klucza.

Jak czytać pola Weryfikacja i Rozpoznawanie

Weryfikacja. Pole weryfikacji normalizuje to, co zostanie wklejone — wielkie lub małe litery, dwukropki co dwie cyfry, prefiks sha256=, opakowanie w stylu BSD SHA256 (plik) = skrót, linię GNU md5sum z nazwą pliku po skrócie, zbłąkane \r\n — a potem przelicza każdy zaznaczony algorytm dla bieżącego wejścia (tekst lub wybrany plik) i zgłasza każdy pasujący. Zielone dopasowanie znaczy „te bajty są dokładnie tym, co wydawca zhashował”; czerwone znaczy, że żaden zaznaczony algorytm tego nie wytworzył — spróbuj zaznaczyć więcej algorytmów albo sprawdź, czy wklejenie nie zostało ucięte.

Rozpoznawanie. Pole identyfikatora niczego nie hashuje; czyta kształt ciągu. Długość zawęża kandydatów: 32 znaki hex mogą być MD5, 40 — SHA-1 lub RIPEMD-160, 64 — SHA-256 / SHA3-256 / Keccak-256 / BLAKE2s-256, 96 — SHA-384, 128 — SHA-512 / SHA3-512 / BLAKE2b-512. Prefiksy zdradzają hasła ($2a$/$2b$/$2y$ bcrypt, $argon2id$, $scrypt$, $6$ sha512crypt, $1$ MD5-crypt) — to inny gatunek (zobacz Generator skrótów haseł) i celowo nie jest tu obliczany. Ciąg z +, / i = o długości wielokrotności 4 jest raczej danymi zakodowanymi w Base64 niż skrótem hex; narzędzie dekoduje go i podaje, ile bajtów by odpowiadało.

Co rozpoznawanie może, a czego nie może powiedzieć. Długość i zestaw znaków to odciski formatu, a nie dowód algorytmu: dwa 64-znakowe ciągi hex mogą pochodzić z SHA-256 albo z obciętego SHA-512. Rozpoznawanie szereguje możliwości; pole Weryfikacja jest tym, które dowodzi, do czego naprawdę pasują bajty.

Wszystkie jedenaście na jednym rzucie oka
Algorytm Trawienie Wymyślony Skrót dla „The quick brown fox jumps over the lazy dog”
MD5128 bitów19929e107d9d372bb6826bd81d3542a419d6
SHA-1160 bitów19952fd4e1c67a2d28fced849ee1bb76e7391b93eb12
SHA-256256 bitów2001d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592
SHA-384384 bity2001ca737f1014a48f4c0b6dd43cb177b0afd9e5169367544c494011e3317dbf9a509cb1e5dc1e85a941bbee3d7f2afbc9b1
SHA-512512 bitów200107e547d9586f6a73f73fbac0435ed76951218fb7d0c8d788a309d785436bbb642e93a252a954f23912547d1e8a3b5ed6e1bfd7097821233fa0538f3db854fee6
SHA3-256256 bitów201569070dda01975c8c120c3aada1b282394e7f032fa9cf32f4cb2259a0897dfc04
SHA3-512512 bitów201501dedd5de4ef14642445ba5f5b97c15e47b9ad931326e4b0727cd94cefc44fff23f07bf543139939b49128caf436dc1bdee54fcb24023a08d9403f9b4bf0d450
Keccak-256256 bitówsprzed 20154d741b6f1eb29cb2a9b9911c82f56fa8d73b04959d3d9d222895df6c0b28aa15
RIPEMD-160160 bitów199637f332f68db77bd9d7edd4969571ad671cf9dd3b
BLAKE2b-512512 bitów2013a8add4bdddfd93e4877d2746e62817b116364a1fa7bc148d95090bc7333b3673f82401cf7aa2e4cb1ecd90296e3f14cb5413f8ed77be73045b13914cdcd6a918
BLAKE2s-256256 bitów2013606beeec743ccbeff6cbcdf5d5302aa855c256c29b88c8ed331ea1a6bf3c8812

Każdy skrót w powyższej tabeli powstaje w silnikach tej właśnie strony — zaznacz wszystkie algorytmy, kliknij Próbka i porównaj. Wiersze SHA-3, Keccak, RIPEMD-160 i BLAKE2 pochodzą z samodzielnie hostowanego jądra crypto-shared.js, używanego w narzędziach kryptograficznych tej witryny.

FAQ

Któremu polu ufać przy pobieraniu? Polu Weryfikacja, z zaznaczonym SHA-256 — większość wydawców dziś podpisuje SHA-256 lub SHA-512. Pole Rozpoznawanie tylko wskazuje kandydatów; nigdy niczego nie dowodzi o pliku.

Dlaczego w ogóle jest Keccak-256? Bo Ethereum, Swarm i kilka systemów ledgerowych przyjęło dopełnienie sprzed standaryzacji. Jeśli weryfikowany jest keccak256 z Ethereum, trzeba użyć tego wiersza, a nie SHA3-256.

Czy dwa różne wejścia mogą mieć ten sam skrót? Teoretycznie tak — nieskończenie wiele wejść odwzorowuje się w skończony zbiór skrótów (zasada szufladkowa). W praktyce chodzi o to, by znaleźć taką parę, zanim nastanie koniec wszechświata, i o to właśnie jest „odporność na kolizje”; wszystkie wymienione algorytmy poza MD5 i SHA-1 wciąż się trzymają.

Czy skróty to szyfrowanie? Nie. Szyfrowanie jest odwracalne kluczem; skrót to jednokierunkowy blender. Nic na tej stronie nie da się „odszyfrować” z powrotem do tekstu — i to jest cecha, a nie ograniczenie.