raatools/

Generator hashy

Generuj skróty kryptograficzne z dowolnego tekstu.

Czym jest kryptograficzna funkcja skrótu?

Kryptograficzna funkcja skrótu przyjmuje dowolne dane wejściowe — pojedynczy znak, dokument lub cały plik — i generuje ciąg znaków szesnastkowych o stałej długości zwany skrótem (ang. digest). Te same dane wejściowe zawsze dają ten sam skrót, ale nawet mała zmiana danych wejściowych daje zupełnie inny wynik. Ta właściwość nazywana jest efektem lawiny.

Funkcje skrótu są jednostronne: nie można odtworzyć oryginalnych danych z ich skrótu. To zasadniczo odróżnia je od szyfrowania, które jest zaprojektowane tak, aby było odwracalne przy użyciu właściwego klucza. Haszowanie jest używane do weryfikacji integralności danych, przechowywania haseł, podpisów cyfrowych i wielu innych zastosowań bezpieczeństwa.

Obsługiwane algorytmy skrótu

  • SHA-1: SHA-1 generuje 160-bitowy skrót (40 znaków szesnastkowych). Był kiedyś standardem dla certyfikatów TLS i commitów Git, ale w 2017 r. odkryto słabości kryptograficzne. SHA-1 jest teraz uznany za przestarzały do użytku bezpieczeństwa, ale pozostaje powszechny dla sum kontrolnych niezwiązanych z bezpieczeństwem.
  • SHA-256: SHA-256 generuje 256-bitowy skrót (64 znaki szesnastkowe). Jest to najszerzej stosowany dziś algorytm, zabezpieczający połączenia TLS, transakcje Bitcoin, certyfikaty podpisywania kodu i weryfikację pakietów oprogramowania.
  • SHA-384: SHA-384 generuje 384-bitowy skrót (96 znaków szesnastkowych). Jest to skrócona wersja SHA-512, powszechnie używana w łańcuchach certyfikatów TLS i konstrukcjach HMAC, gdzie pożądany jest dodatkowy margines bezpieczeństwa.
  • SHA-512: SHA-512 generuje 512-bitowy skrót (128 znaków szesnastkowych). Oferuje maksymalną siłę w rodzinie SHA-2 i może być szybszy niż SHA-256 na procesorach 64-bitowych, ponieważ natywnie operuje na 64-bitowych słowach.

Typowe zastosowania haszowania

  • Weryfikacja integralności pliku przez porównanie sum kontrolnych po pobraniu.
  • Bezpieczne przechowywanie haseł w bazach danych (zawsze z unikalną solą dla każdego użytkownika).
  • Generowanie podpisów cyfrowych dla dokumentów i pakietów oprogramowania.
  • Cache-busting w tworzeniu stron internetowych przez dołączanie skrótów zawartości do nazw plików.
  • Tworzenie unikalnych identyfikatorów adresowanych przez zawartość w systemach rozproszonych.

Haszowanie a szyfrowanie

Szyfrowanie jest odwracalne — możesz odszyfrować dane przy użyciu właściwego klucza. Haszowanie to funkcja jednostronna — nie możesz odzyskać oryginalnego tekstu z skrótu. To sprawia, że haszowanie jest idealne dla haseł (wystarczy weryfikować, nie odzyskiwać) i sprawdzania integralności (wystarczy wykrywać zmiany).

Czy mój tekst jest bezpieczny?

Całe haszowanie używa wbudowanego interfejsu Web Crypto API przeglądarki (crypto.subtle). Twój tekst nigdy nie jest przesyłany na żaden serwer. Web Crypto API to ten sam silnik kryptograficzny używany przez HTTPS, zapewniający przemysłowe implementacje każdego algorytmu.

Często zadawane pytania

Czy dwa różne dane wejściowe mogą dać ten sam skrót?

Teoretycznie tak — nazywa się to kolizją. Jednak dla SHA-256 znalezienie kolizji wymaga około 2¹²⁸ operacji, co jest obliczeniowo niewykonalne przy obecnej lub przewidywalnej technologii. Kolizje SHA-1 zostały zademonstrowane, co jest powodem jego wycofania.

Którego algorytmu skrótu powinienem używać?

W większości przypadków SHA-256 to najlepszy wybór. Oferuje silne bezpieczeństwo, szeroką kompatybilność i doskonałą wydajność. Używaj SHA-512, jeśli potrzebujesz dodatkowego marginesu bezpieczeństwa lub pracujesz na systemach 64-bitowych, gdzie może być szybszy. Unikaj SHA-1 do wszelkich aplikacji wrażliwych na bezpieczeństwo.