Hash SHA-1

Wejście{znaki} {bajty} bajty
示例:
All Hashes (side-by-side)
Computed via Web Crypto API
MD5
32 hex
SHA-1
40 hex
SHA-256
64 hex
SHA-384
96 hex
SHA-512
128 hex

Narzędzie do obliczania skrótu SHA-1 online. Generuje 40-znakowy hash szesnastkowy dla tekstu i plików. Obliczenia wykonywane lokalnie w przeglądarce bez wysyłania danych na serwer.

Powiązane Rekomendacje

Czym jest SHA-1?

SHA-1 (Secure Hash Algorithm 1) to kryptograficzna funkcja skrótu zaprojektowana przez NSA (National Security Agency) i opublikowana przez NIST w 1995 roku. Przyjmuje wejście o dowolnej długości i produkuje 160-bitowy (40-znakowy szesnastkowy) skrót.

**Typowe zastosowania:** ①odcisk palca commitów Git/SVN (commit SHA); ②weryfikacja integralności plików (kompatybilność historyczna); ③hash dystrybucji oprogramowania (zastąpiony przez SHA-256+); ④uzgadnianie TLS 1.0/1.1 (przestarzałe).

**Status bezpieczeństwa:** W 2017 roku Google i CWI Amsterdam opublikowały pierwszy praktyczny atak kolizyjny na SHA-1 (SHAttered), co oznacza, że SHA-1 nie jest już odporny na kolizje. W scenariuszach wrażliwych używaj SHA-256 lub nowszych; w scenariuszach nie związanych z bezpieczeństwem (historia Git, odciski plików) można nadal używać.

**Porównanie z MD5:** SHA-1 jest nieco bezpieczniejszy od MD5 (dłuższy skrót), ale oba nie są już odporne na kolizje; MD5 nadaje się do odcisków plików i deduplikacji, SHA-1 pozostaje w historii Git. Żaden nie powinien być używany w nowych scenariuszach bezpieczeństwa.

Przypadki użycia

  • Sprawdzanie hashy commitów Git
  • Odciski palca wersji kodu SVN
  • Weryfikacja SHA-1 w starszych systemach (unikanie migracji)
  • Demonstracja kryptograficznych funkcji skrótu w nauczaniu
  • Weryfikacja hashy starego oprogramowania (opublikowane MD5/SHA1)
  • Testowanie zgodności SHA-1 między klientem a serwerem

Jak Używać

  1. Wprowadź lub wklej tekst do pola tekstowego
  2. Narzędzie automatycznie obliczy SHA-1 i wyświetli 40-znakowy wynik szesnastkowy
  3. Opcjonalnie: przeciągnij plik, aby obliczyć SHA-1 pliku
  4. Kliknij przycisk kopiowania, aby pobrać wartość skrótu

Funkcje

  • SHA-1 dla tekstu: obliczenia w czasie rzeczywistym (w milisekundach)
  • SHA-1 dla plików: obliczenia fragmentowe obsługują duże pliki
  • Przetwarzanie lokalne w przeglądarce: zawartość nie jest wysyłana na serwer
  • Kopiowanie jednym kliknięciem: kopiuj skrót do schowka
  • Obsługa języka polskiego, emoji i innych języków
  • Porównywanie dwóch skrótów SHA-1 (bez uwzględniania wielkości liter)

Często Zadawane Pytania

Czy SHA-1 jest bezpieczny? Czy można go nadal używać?

W scenariuszach wrażliwych na bezpieczeństwo używaj SHA-256/SHA-512 lub nowszych. SHA-1 został złamany przez Google w 2017 roku (atak SHAttered). Ale: ①kompatybilność z historią Git; ②weryfikacja starego oprogramowania; ③odciski plików niewrażliwych – w tych scenariuszach można nadal używać.

Jaka jest długość wyjścia SHA-1?

SHA-1 produkuje 160 bitów, co w zapisie szesnastkowym daje 40 znaków (każde 4 bity = 1 znak hex). Na przykład: a1b2c3d4e5f6... łącznie 40 znaków.

Który jest lepszy: SHA-1 czy MD5?

Żaden nie nadaje się do nowych scenariuszy bezpieczeństwa. SHA-1 jest nieco bezpieczniejszy od MD5 (dłuższy skrót). Ale w praktyce: ①odciski plików/deduplikacja → MD5 (szybszy); ②kompatybilność z Git → SHA-1; ③scenariusze bezpieczeństwa → SHA-256+.

Czy SHA-1 rozróżnia wielkość liter?

Tak. Tekst oryginalny i ten sam tekst zapisany wielkimi literami mają zupełnie inny SHA-1. Ale sam ciąg znaków skrótu może być wyświetlany wielkimi lub małymi literami (Linux używa małych, Windows wielkich); przy porównywaniu wystarczy porównać znaki ignorując wielkość liter.

Czy można obliczyć SHA-1 pliku?

Tak. Kliknij przycisk przesyłania pliku lub przeciągnij plik na stronę. Narzędzie obliczy SHA-1 pliku fragmentowo, co nadaje się do dużych plików bez zawieszania.

Czy SHA-1 to algorytm szyfrowania?

Nie. SHA-1 to jednokierunkowa funkcja skrótu – teoretycznie nie można odzyskać oryginalnego tekstu ze skrótu. „Szyfrowanie SHA-1” to powszechne nieformalne określenie. To narzędzie nie służy do szyfrowania, tylko do obliczania skrótów.

Dlaczego Git nadal używa SHA-1?

Chociaż SHA-1 sam w sobie nie jest odporny na kolizje, struktura używana przez Git została specjalnie zaprojektowana przez Linusa Torvaldsa – nawet jeśli można stworzyć surową kolizję, nie można skonstruować kolizji commita Git z tym samym prefiksem. Dlatego Git pozostaje bezpieczny.

Czy wprowadzona zawartość jest wysyłana na serwer?

To narzędzie bazuje na Web Crypto API i oblicza skróty w przeglądarce. Zawartość nie jest wysyłana na serwer. Przetwarzanie lokalne chroni prywatność, co nadaje się do scenariuszy wrażliwych.

Rozwiązywanie problemów

Wynik SHA-1 różni się od pokazanego w innym narzędziu

Sprawdź: 1) czy wprowadzono dokładnie ten sam tekst (w tym spacje, nowe linie, znaki niewidoczne); 2) czy oryginalny tekst nie został automatycznie przycięty (zaleca się zaznaczenie opcji uwzględniającej nowe linie); 3) czy kodowanie jest zgodne (UTF-8, GBK itp.).

Długość wyjścia SHA-1 nie wynosi 40 znaków?

SHA-1 zawsze produkuje 160 bitów = 40 znaków szesnastkowych. Jeśli wyjście jest dłuższe lub krótsze, może być wyświetlane w kodowaniu Base64. Upewnij się, że narzędzie używa wyświetlania szesnastkowego, a nie innego kodowania.

Słownik

SHA1
160-bitowa kryptograficzna funkcja skrótu, standaryzowana przez NIST w FIPS 180-1. Nie odporna na kolizje, ale nadal powszechnie używana w historii Git i weryfikacji plików.
Hash (skrót)
Funkcja matematyczna odwzorowująca wejście o dowolnej długości na wyjście o stałej długości. SHA-1 w tym narzędziu generuje 40-znakowy szesnastkowy skrót.
Kolizja
Dwa różne wejścia dające ten sam skrót. W 2017 roku Google opublikowało atak SHAttered, dowodząc, że można skonstruować kolizję SHA-1.
FIPS
Federal Information Processing Standards – standardy przetwarzania informacji publikowane przez amerykański NIST. FIPS 180-1 to standard SHA-1.
Kodowanie szesnastkowe (Hex)
Skróty są zwykle wyświetlane w systemie szesnastkowym, gdzie każde 4 bity odpowiadają jednemu znakowi hex. SHA-1 produkuje 160 bitów → 40 znaków szesnastkowych.
Git commit hash
Git używa SHA-1 do identyfikacji każdego commita. Chociaż sam algorytm został złamany, Git nadal używa SHA-1, ponieważ Linus Torvalds zaprojektował strukturę odporną na kolizje dla commitów Git.

Porównanie SHA-1 z innymi algorytmami haszującymi

Porównanie różnic między SHA-1 a rodziną MD5/SHA-2.

AlgorytmWyjścieRokBezpieczeństwo
MD5128 bitów / 32 znaki1992Słaby (złamany w 2004)
SHA-1160 bitów / 40 znaków1995Słaby (złamany w 2017)
SHA-256256 bitów / 64 znaki2001Silny (zalecany)
SHA-512512 bitów / 128 znaków2001Bardzo silny

Wpływ długości wejścia na szybkość SHA-1

Szybkość przetwarzania SHA-1 jest proporcjonalna do ilości danych wejściowych.

Rozmiar wejściaCzas przetwarzania lokalnegoScenariusz
10 znaków< 1 msKrótki ciąg znaków
1 KB< 1 msKrótki dokument tekstowy
100 KB1-2 msŚredni dokument
10 MB30-60 msPlik PDF
100 MB300-600 msPlik wideo
1 GB3-6 sDuży plik

5 typowych scenariuszy użycia SHA-1

Obejmuje rozwój, kontrolę wersji, zgodność i bezpieczeństwo.

Scenariusz użyciaPoziom ryzykaGłówna wartość
Hash commita GitNiskie (ochrona Git przed kolizjami)Kompatybilność historyczna
Weryfikacja SHA-1 starego oprogramowaniaŚrednieKompatybilność ze starszymi systemami
Demonstracja dydaktycznaBrakZrozumienie zasad hashowania
Hashowanie hasełWysokie (nie powinno się używać)Należy użyć bcrypt/Argon2
Podpisy APIWysokie (nie powinno się używać)Należy użyć SHA-256/HMAC-SHA-256

Authoritative References