Hash SHA-1
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ć
- Wprowadź lub wklej tekst do pola tekstowego
- Narzędzie automatycznie obliczy SHA-1 i wyświetli 40-znakowy wynik szesnastkowy
- Opcjonalnie: przeciągnij plik, aby obliczyć SHA-1 pliku
- 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.
| Algorytm | Wyjście | Rok | Bezpieczeństwo |
|---|---|---|---|
MD5 | 128 bitów / 32 znaki | 1992 | Słaby (złamany w 2004) |
SHA-1 | 160 bitów / 40 znaków | 1995 | Słaby (złamany w 2017) |
SHA-256 | 256 bitów / 64 znaki | 2001 | Silny (zalecany) |
SHA-512 | 512 bitów / 128 znaków | 2001 | Bardzo 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ścia | Czas przetwarzania lokalnego | Scenariusz |
|---|---|---|
10 znaków | < 1 ms | Krótki ciąg znaków |
1 KB | < 1 ms | Krótki dokument tekstowy |
100 KB | 1-2 ms | Średni dokument |
10 MB | 30-60 ms | Plik PDF |
100 MB | 300-600 ms | Plik wideo |
1 GB | 3-6 s | Duży plik |
5 typowych scenariuszy użycia SHA-1
Obejmuje rozwój, kontrolę wersji, zgodność i bezpieczeństwo.
| Scenariusz użycia | Poziom ryzyka | Główna wartość |
|---|---|---|
| Hash commita Git | Niskie (ochrona Git przed kolizjami) | Kompatybilność historyczna |
| Weryfikacja SHA-1 starego oprogramowania | Średnie | Kompatybilność ze starszymi systemami |
| Demonstracja dydaktyczna | Brak | Zrozumienie zasad hashowania |
| Hashowanie haseł | Wysokie (nie powinno się używać) | Należy użyć bcrypt/Argon2 |
| Podpisy API | Wysokie (nie powinno się używać) | Należy użyć SHA-256/HMAC-SHA-256 |
Authoritative References
- NISTNIST FIPS 180-1 – Standard SHA-1
- Google / CWISHAttered – pierwsza kolizja SHA-1
- MDNMDN – SubtleCrypto.digest
- WikipediaWikipedia – SHA-1
- Bezpieczne porównanie ciągów znaków
- Konwersja binarna
- Szyfr Cezara
- Kod Morse'a
- Szesnastkowy
- Video do Base64
- Base64 na wideo
- Obraz na Base64
- Base64 na obraz
- Tekst na Base64
- Base64 na tekst
- Weryfikacja haszu pliku
- Plik na Base64
- Base64 na plik
- Audio na Base64
- Base64 na Audio
- Szyfrowanie i deszyfrowanie AES
- Szyfrowanie i deszyfrowanie DES
- Koder Dekoder Base32
- Base58 kodowanie i dekodowanie
- Kodowanie Base64
- Dekodowanie Base64
- Porównanie Base64
- Podział Base64
- Base64 łączenie wielu linii
- Formatowanie Base64
- Sprawdzanie formatu Base64
- Wsadowe kodowanie Base64
- Batchowe dekodowanie Base64
- Czyszczenie Base64
- Narzędzie paddingu Base64
- Statystyki długości Base64
- Base64 na szesnastkowy
- Konwerter Base64 DataURL
- Konwerter Base64-Hex
- Koder/Dekoder Base85
- Generator i weryfikator HMAC
- Derywacja klucza PBKDF2
- Skrót MD5
- Hash SHA-256
- Hash SHA-1
- Hash SHA512
- Narzędzie JWT
- Kodowanie i dekodowanie encji HTML
- Unikod - sekwencje ucieczki
- Kodowanie URL
- Base64 URL Safe
- MIME Base64
- Obfuskacja Java
- Obfuskacja JS
- Obfuskacja PHP
- Obfuskacja Python