Skip to main content

Generuj skróty MD5, SHA-1, SHA-256, SHA-384 i SHA-512.

Wszystkie obliczenia wykonywane są lokalnie w przeglądarce. Dane nie są wysyłane na serwer.

Wyniki mają charakter informacyjny. Potwierdź je w innych źródłach.

Funkcje skrótu i do czego służą

Funkcja skrótu zamienia dowolne wejście w odcisk o stałej długości. To samo wejście zawsze daje ten sam skrót; zmiana jednego znaku daje zupełnie inny. Skróty weryfikują, że dane się nie zmieniły — nie służą do przechowywania haseł.

Jak to działa

  • MD5 daje 128 bitów (32 znaki szesnastkowe), SHA-1 160, a SHA-256 256.
  • Długość wyniku jest stała niezależnie od rozmiaru wejścia: plik jednobajtowy i gigabajtowy dają pod SHA-256 te same 64 znaki.
  • Funkcja jest z założenia jednokierunkowa. Nie istnieje operacja odzyskująca wejście ze skrótu.
  • Jest deterministyczna, więc ten sam plik policzony na dwóch maszynach musi dać identyczny wynik — i to czyni sumy kontrolne użytecznymi.
MD5      → 128 bitów → 32 znaki hex   (złamany, nie do zastosowań bezpieczeństwa)
SHA-1    → 160 bitów → 40 znaków hex  (złamany, nie do zastosowań bezpieczeństwa)
SHA-256  → 256 bitów → 64 znaki hex   (obecny domyślny)

Przykład z liczbami

Skrót pięcioznakowego napisu hello każdym algorytmem. Możesz to odtworzyć w terminalu.

  1. printf 'hello' | md5
  2. → 5d41402abc4b2a76b9719d911017c592
  3. printf 'hello' | shasum -a 256
  4. → 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
  5. teraz zmień jedną literę: printf 'hellp' | shasum -a 256
  6. → zupełnie niepowiązany skrót, bez wspólnego przedrostka z pierwszym

Jeden zmieniony znak daje całkiem inny skrót. Ta własność lawiny pozwala sumie kontrolnej wykryć pojedynczy uszkodzony bajt w dużym pliku.

Jak czytać wynik

  • Nigdy nie licz nimi skrótu hasła. MD5, SHA-1 i SHA-256 zaprojektowano jako szybkie, a szybkość jest przy hasłach dokładnie tym, czego nie chcemy — współczesny GPU sprawdza miliardy prób SHA-256 na sekundę. Użyj bcrypt, scrypt albo Argon2, które są celowo wolne i solone.
  • MD5 i SHA-1 są złamane dla zastosowań bezpieczeństwa: istnieją praktyczne kolizje, czyli można spreparować dwa różne wejścia o tym samym skrócie. Jako nieadwersaryjne sumy kontrolne do wykrywania przypadkowych uszkodzeń nadal się nadają.
  • Skrót to nie szyfrowanie. Nie ma klucza ani drogi powrotnej — i o to chodzi, to nie ograniczenie.
  • Porównanie policzonego skrótu z opublikowanym przez źródło dowodzi integralności tylko wtedy, gdy opublikowany skrót przyszedł kanałem, którego napastnik nie mógł też zmienić.

Częste pytania

Czy mogę odwrócić skrót i odzyskać tekst?
Matematycznie nie. Strony reklamujące taką usługę w rzeczywistości sprawdzają Twój skrót w gotowej tablicy popularnych wejść. Działa to dla haseł i słów ze słownika — i właśnie dlatego hasła wymagają solonej, wolnej funkcji.
Którego algorytmu użyć?
SHA-256 do sum kontrolnych i integralności. bcrypt albo Argon2 do haseł. MD5 tylko wtedy, gdy wymaga tego coś starego i nic w kwestii bezpieczeństwa od tego nie zależy.