Co to jest SHA-1?
SHA-1 (Secure Hash Algorithm 1) generuje 160-bitowy skrót (40 znaków szesnastkowych). Zaprojektowany przez NSA i opublikowany przez NIST w 1995 (FIPS 180-1), stał się popularny do podpisów cyfrowych, sum kontrolnych plików i systemów kontroli wersji.
Uwaga dotycząca bezpieczeństwa: SHA-1 jest złamany — używaj SHA-256, SHA-3 lub BLAKE3 w nowych systemach.
Jak działa SHA-1
- Dopełnij wiadomość → długość ≡ 448 (mod 512) bitów
- Dołącz 64-bitową długość oryginalnej wiadomości
- Inicjalizuj pięć 32-bitowych słów (A–E)
- Przetwarzaj bloki 512-bitowe przez 80 operacji (cztery rundy)
- Wygeneruj końcowy 160-bitowy skrót
Status bezpieczeństwa
- 2005 — pierwsze teoretyczne ataki kolizyjne
- 2017 — Google i CWI Amsterdam pokazali rzeczywistą kolizję (PDF-y „SHAttered”)
- Przeglądarki teraz nie ufają certyfikatom TLS SHA-1
- NIST wycofał SHA-1 dla podpisów cyfrowych w 2011
Przykładowe skróty
Input | Skrót SHA-1 |
---|---|
Hello World | 0a4d55a8d778e5022fab701977c5d840bbc486d0 |
password | 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8 |
test123 | 7288edd0fc3ffcbe93a0cf06e3568e28521687bc |
(pusty) | da39a3ee5e6b4b0d3255bfef95601890afd80709 |
SHA-1 a inne funkcje skrótu
Algorithm | Output | Security | Speed |
---|---|---|---|
MD5 | 128 bitów | ❌ Złamany | ⚡ Bardzo szybki |
SHA-1 | 160 bitów | ❌ Kompromitowany | ⚡ Szybki |
SHA-256 | 256 bitów | ✅ Bezpieczny | 🚀 Umiarkowany |
SHA-3 | Variable | ✅ Bardzo bezpieczny | 🚀 Umiarkowany |
BLAKE3 | 256 bitów | ✅ Bezpieczny | ⚡ Błyskawiczny |
Najczęściej zadawane pytania
Czy SHA-1 jest bezpieczny dla haseł?
Nie. Używaj zamiast tego bcrypt, Argon2 lub PBKDF2.
Co to jest kolizja SHA-1?
Kolizja występuje, gdy dwa różne dane wejściowe generują ten sam skrót. Atak „SHAttered” z 2017 roku udowodnił rzeczywiste kolizje.
Dlaczego Git nadal używa SHA-1?
Projekt Git ogranicza możliwość wykorzystania, ale przechodzi na SHA-256.