Wyjaśnienie
Jak działa Generator skrótów
Generator hash oblicza kryptograficzne sumy kontrolne dla dowolnych tekstów bezpośrednio w przeglądarce. Wpisany tekst jest kodowany jako UTF-8 i przetwarzany przez wybrany algorytm SHA.
SHA-256 to najczęstszy algorytm i daje 256-bitowy hash (64 znaki hex). SHA-384 daje 96 znaków hex, SHA-512 daje 128 znaków hex. Te algorytmy należą do rodziny SHA-2, ustandaryzowanej przez NIST w FIPS 180-4.
Hex i standardowy Base64 przedstawiają te same bajty digest. Base64 jest bardziej zwarty, ale może zawierać +, / i dopełnienie i nie jest automatycznie bezpieczny dla URL.
Typowe błędy
- Mylenie haszowania z szyfrowaniem: Hash nie jest odwracalną reprezentacją tekstu jawnego. Szyfrowanie służy innemu celowi i jest odwracalne przy użyciu odpowiedniego klucza.
- Używanie MD5 lub SHA-1 do celów bezpieczeństwa: Oba algorytmy mają znane ataki kolizyjne i według BSI TR-02102-1 są uznawane za niebezpieczne.
- Używanie haszy SHA do przechowywania haseł: Proste hashe SHA są obliczane zbyt szybko. Użyj bcrypt, scrypt lub Argon2 z solą i współczynnikiem pracy.
- Interpretowanie równości haszy jako tożsamości: Równe hashe oznaczają równe wejście z niezwykle wysokim prawdopodobieństwem, ale nie z absolutną pewnością (teoretyczna możliwość kolizji).
Ograniczenia tego narzędzia
- Brak funkcji solenia — nieodpowiednie do przechowywania haseł.
- Tylko wejście tekstowe, bez plików (do haszy plików użyj dedykowanych narzędzi).
- Brak trybu HMAC (haszowanie z kluczem) — tylko proste obliczanie hash.
- Brak zintegrowanej weryfikacji względem znanych wartości hash.
- Spacje, znaki końca wiersza i normalizacja Unicode nie są ujednolicane, lecz haszowane jako część wejścia UTF-8.
Źródła
- BSI TR-02102-1: Metody kryptograficzne — zalecenia i długości kluczy. Niemiecki Federalny Urząd ds. Bezpieczeństwa Informacji.
- NIST FIPS 180-4: Secure Hash Standard (SHS). Definiuje SHA-256, SHA-384, SHA-512.
- RFC 1321: MD5 Message-Digest Algorithm (historyczny, niezalecany do bezpieczeństwa).
- Web Crypto API: Standard W3C dla operacji kryptograficznych w przeglądarce (crypto.subtle.digest).