Generator skrótów SHA1
SHA-1 tworzy 160-bitowy skrót (40 znaków szesnastkowych) i stoi za identyfikatorami obiektów git, starszymi sumami kontrolnymi SVN oraz całą masą systemów podpisu sprzed 2017 roku. Wklej dowolny tekst, a otrzymasz deterministyczny skrót. Ważne zastrzeżenie na start: SHA-1 jest złamany pod kątem odporności na kolizje (SHAttered, 2017) i nie wolno go używać do nowych podpisów ani do przechowywania haseł, nadaje się tylko do kontroli integralności bez przeciwnika.
Jak wyliczyć skrót SHA-1
-
1
Wklej dane wejściowe
Dowolny tekst: ciąg znaków, cały plik zrzucony do tekstu albo sekwencja szesnastkowa.
-
2
Kodowanie to UTF-8
Dane wejściowe są serializowane jako bajty UTF-8 przed haszowaniem, zgodnie z domyślnym ustawieniem w OpenSSL, Python hashlib i Node crypto.
-
3
Działa pętla Merkle-Damgård
Wiadomość jest dopełniana, dzielona na bloki 512-bitowe i przepuszczana przez funkcję kompresji SHA-1 w 80 rundach na blok.
-
4
Skopiuj 40-znakowy skrót szesnastkowy
Wynik to zawsze 40 małych znaków szesnastkowych (160 bitów).
SHA-1 w skrócie
| Właściwość | Wartość |
|---|---|
| Rozmiar wyniku | 160 bitów / 40 znaków hex |
| Rozmiar bloku | 512 bitów |
| Rundy | 80 |
| Odporność na kolizje | Złamana (2^63 wybrany prefiks) |
| Odporność na preimage | Nienaruszona (w chwili pisania) |
| Szybkość | ~500 MB/s na jednym nowoczesnym rdzeniu |
Gdzie SHA-1 jest nadal akceptowalny
- Git. Identyfikatory commitów i blobów to SHA-1 (z SHA-256 jako opcją). Kolizje pomyliłyby historię, ale nie pozwalają sfałszować commita bez klucza autora.
- Deduplikacja bez bezpieczeństwa. Adresowanie treści w magazynie obiektów, gdzie model zagrożeń nie obejmuje atakującego.
- API zgodne wstecz. Starsze webhooki, takie jak
X-Hub-SignatureGitHuba (v1). - Identyfikatory śledcze. Odciski plików do deduplikacji w obrębie archiwum.
Gdzie SHA-1 jest nieakceptowalny
- Certyfikaty TLS. Przeglądarki przestały ufać certyfikatom SHA-1 od 2017 roku.
- Podpisywanie kodu. Microsoft, Apple i Mozilla odrzuciły podpisy SHA-1.
- Haszowanie haseł. Użyj Argon2id albo bcrypt.
- HMAC w nowym projekcie. Użyj co najmniej HMAC-SHA-256.
Jeśli chcesz zweryfikować wynik
Porównaj z echo -n "hello" | sha1sum na dowolnym systemie Unix. Skrót dla ciągu hello to aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d.
Najczęściej zadawane pytania
Matematycznie nie. Dla typowych krótkich danych wejściowych atakujący z gotowym słownikiem rozpozna je natychmiast, dlatego same skróty nie chronią haseł. Dla 40-znakowego losowego ciągu nie istnieje praktyczne odwrócenie.
Nie. SHA (Secure Hash Algorithm) to rodzina opublikowana przez NIST. SHA-1 to 160-bitowy algorytm z 1995 roku. SHA-2 to rodzina obejmująca SHA-224, SHA-256, SHA-384 i SHA-512.
Ze względu na zgodność z ponad dekadą historii. Od 2017 roku git zabezpiecza się przed kolizjami wybranego prefiksu (SHA-1DC) i obsługuje repozytoria SHA-256 dla nowych projektów.
Na naszym serwerze. Twój tekst jest wysyłany przez szyfrowane połączenie, haszowany standardową funkcją SHA-1, a 40-znakowy skrót jest zwracany. Nie przechowujemy przesłanego tekstu. Ponieważ SHA-1 jest funkcją jednokierunkową, samego skrótu nie da się z powrotem zamienić na Twoje dane wejściowe.
Powiązane narzędzia
Weryfikator sum kontrolnych
Oblicz sumę kontrolną MD5, SHA-1, SHA-256, SHA-384, SHA-512 lub CRC32 dowolnego tekstu i porównaj ją z oczekiwaną wartością, aby uzyskać jednoznaczny werdykt zgodności lub niezgodności.
Generator skrótów
Generuj skróty MD5, SHA-1, SHA-256, SHA-384, SHA-512 i CRC32 z tekstu, ze skrótem gotowym do skopiowania dla sum kontrolnych i porównań.
Generator CSR
Wygeneruj zakodowane w PEM żądanie podpisania certyfikatu i pasujący prywatny klucz RSA. Podaj common name, pola organizacji i rozmiar klucza (2048, 3072 lub 4096 bitów).
Identyfikator szyfrów
Wklej ciphertext, a identyfikator zasugeruje prawdopodobne kodowania/szyfry: Base64, hex, binarny, Morse, Caesar lub podstawieniowy, JWT i popularne hashe.
Identyfikator szyfrowania
Wklej tekst szyfrowany lub jego hasz; identyfikator sugeruje najbardziej prawdopodobne algorytmy lub formy kodowania: MD5, SHA, bcrypt, AES, RSA, Base64 oraz inne.
Generator JWT
Generuj podpisane JWT-y z dostosowanym nagłówkiem, informacjami o obciążeniu, podpisem typu HMAC lub RSA, terminem ważności oraz ograniczeniami dotyczącymi odbiorców w celach testowych.
Narzędzie jest dostępne w innych językach
- Generator Hash SHA1 [ID]
- SHA1ハッシュジェネレータ [JA]
- เครื่องสร้างแฮช SHA1 [TH]
- SHA1 해시 생성기 [KO]
- SHA1-Hash-Generator [DE]
- Gerador de Hash SHA1 [PT]
- SHA1-hashgenerator [SV]
- Bộ tạo giá trị hash SHA1 [VI]
- Generador de Hash SHA1 [ES]
- Générateur de hachage SHA1 [FR]
- مولد تجزئة SHA1 [AR]
- SHA1-hashgenerator [NL]
- SHA1 Hash Generator [EN]
- Generatore di hash SHA1 [IT]
- Генератор хешей SHA1 [RU]
- SHA1 Hash Oluşturucu [TR]
- SHA1哈希生成器 [ZH]