logo
GeekFormat

Skrót MD5

Wejście0 znaków · 0 bajtów
示例:
All Hashes (side-by-side)
Computed via Web Crypto API
MD5
32 hex
SHA-1
40 hex
SHA-256
64 hex
SHA-384
96 hex
SHA-512
128 hex

Darmowe narzędzie do skrótów MD5 online. Tryby tekst/plik/wsadowy/HMAC-MD5, UTF-8/Latin1, wielkie litery, grupowanie po 8 znaków. ⚠️ MD5 jest skompromitowany — NIE używaj do przechowywania haseł.

Powiązane Rekomendacje

Przypadki użycia

  • Integralność plików: oblicz MD5 po pobraniu, aby porównać z oficjalnymi sumami kontrolnymi
  • Wsadowe generowanie skrótów dla plików konfiguracyjnych lub notatek o wydaniu
  • Podpisywanie HMAC-MD5 do integracji ze starszymi systemami
  • Deduplikacja danych poprzez szybkie porównywanie MD5
  • Generowanie kluczy pamięci podręcznej jako krótkich unikalnych identyfikatorów
  • Edukacja: zrozumienie algorytmów haszujących poprzez porównywanie wyników MD5/SHA-1/SHA-256

Funkcje

  • Cztery tryby: Tekst, Plik, Wsadowy po liniach i HMAC-MD5, obejmujące powszechne scenariusze sum kontrolnych
  • Wybieralne kodowanie UTF-8/Latin1 dla różnych wejść systemowych
  • Wyświetlanie wielkimi literami i grupowanie po 8 znaków dla czytelności
  • Fragmentowe hashowanie plików: przyrostowe odczytywanie dla dużych plików zapobiega problemom z pamięcią
  • Tryb wsadowy: każda linia jest haszowana niezależnie z wyjściem oryginał→skrót
  • Kopiowanie wyników jednym kliknięciem

Jak Używać

  1. Wybierz tryb: Tekst, Plik, Wsadowy lub HMAC-MD5
  2. Skonfiguruj opcje: kodowanie, wielkie litery, grupowanie po 8 znaków
  3. Wprowadź tekst, prześlij plik lub wklej zawartość wsadową
  4. Skopiuj wynik skrótu do weryfikacji lub skryptów

Często Zadawane Pytania

Do czego zazwyczaj używa się MD5?

MD5 jest zazwyczaj używany do sprawdzania integralności plików (np. weryfikacji pobrań), szybkiego generowania skrótów, kompatybilności ze starszymi systemami, kluczy pamięci podręcznej i deduplikacji danych w scenariuszach nie związanych z bezpieczeństwem. MD5 produkuje 128 bitów (32 znaki szesnastkowe) i jest ekstremalnie szybki, odpowiedni do niekrytycznych scenariuszy weryfikacji.

MD5 kontra SHA-256?

MD5 produkuje 128 bitów (32 hex), ekstremalnie szybki ale skompromitowany; SHA-256 produkuje 256 bitów (64 hex), wolniejszy ale bez praktycznych ataków kolizyjnych i preferowany do krytycznych zastosowań.

Narzędzie SHA-256

Dlaczego MD5 jest niebezpieczny dla haseł?

MD5 jest ekstremalnie szybki — nowoczesne GPU mogą obliczać miliardy skrótów na sekundę, a tablice tęczowe błyskawicznie łamią powszechne hasła. Do przechowywania haseł używaj bcrypt, scrypt lub Argon2.

Generator haseł

MD5 jest skompromitowany — czy mogę go nadal używać?

Absolutnie NIE dla bezpieczeństwa (podpisy cyfrowe, hasła, TLS). Ale dla zastosowań nie związanych z bezpieczeństwem (sprawdzanie uszkodzeń plików, deduplikacja, klucze pamięci podręcznej) MD5 jest nadal odpowiedni, ponieważ atakujący nie mają motywacji do tworzenia kolizji.

Czy skróty MD5 można „odszyfrować"?

MD5 jest funkcją jednokierunkową i matematycznie nie można go odwrócić, ale tablice tęczowe i brute force mogą odzyskać słabe hasła w ciągu sekund. Dlatego MD5 nigdy nie powinien być używany do przechowywania haseł.

Czy duże pliki spowodują zawieszenie?

Nie. Narzędzie wykorzystuje fragmentowe przyrostowe odczytywanie — pliki nie są ładowane w całości do pamięci, więc nawet wielogigabajtowe pliki są przetwarzane płynnie z responsywnym interfejsem.

Co to jest HMAC-MD5 w porównaniu do zwykłego MD5?

HMAC-MD5 to kluczowy skrót wymagający tajnego klucza. Chociaż zwykły MD5 jest skompromitowany, HMAC-MD5 pozostaje bezpieczny, gdy klucz jest nieznany (chociaż zalecana jest migracja na HMAC-SHA256).

Generator HMAC

Co to jest MD5?

MD5 (Message-Digest Algorithm 5) to 128-bitowa funkcja skrótu zaprojektowana przez Ronalda Rivesta w 1991 roku (RFC 1321), która tworzy stały 32-znakowy szesnastkowy skrót z dowolnego wejścia. Kiedyś szeroko stosowany do podpisów cyfrowych, weryfikacji certyfikatów i przechowywania haseł, MD5 został skompromitowany przez atak kolizyjny Wanga i współpracowników w 2004 roku, a złośliwe oprogramowanie Flame wykorzystało kolizje MD5 do sfałszowania zaufanego certyfikatu CA w 2008 roku.

**Status bezpieczeństwa**: NIST oficjalnie odrzucił MD5 dla podpisów cyfrowych w SP 800-131A (2011). Jednak MD5 pozostaje przydatny w scenariuszach nie związanych z bezpieczeństwem: sprawdzanie integralności plików przed przypadkowym uszkodzeniem, deduplikacja danych i klucze pamięci podręcznej. Kluczowe pytanie: czy atakujący odniósłby korzyść z stworzenia kolizji? Jeśli nie, szybkość MD5 jest zaletą.

**NIGDY nie używaj MD5 do przechowywania haseł**: MD5 jest ekstremalnie szybki (miliardy skrótów/sekundę na GPU), co pozwala na natychmiastowe złamanie powszechnych haseł brute forcem. Przechowywanie haseł MUSI używać bcrypt, scrypt lub Argon2 — wolnych skrótów z konfigurowalnymi czynnikami kosztu, które sprawiają, że brute force jest niepraktyczny.

**HMAC-MD5 jest nadal bezpieczny**: chociaż zwykły MD5 jest skompromitowany, HMAC-MD5 (kod uwierzytelniania wiadomości oparty na skrócie z kluczem) pozostaje bezpieczny, gdy klucz jest nieznany, ponieważ konstrukcja HMAC nie zależy bezpośrednio od odporności bazowego skrótu na kolizje. Niemniej jednak zalecana jest migracja na HMAC-SHA256.

Narzędzie używa czystej implementacji MD5 w JavaScript (Web Crypto API nie obsługuje już MD5). Wszystkie obliczenia są wykonywane lokalnie w przeglądarce — pliki wykorzystują fragmentowe przyrostowe odczytywanie i nigdy nie są wysyłane na serwery.

术语表

Funkcja skrótu (Hash Function)
Funkcja matematyczna, która odwzorowuje wejście o dowolnej długości na wyjście o stałej długości. Dobre funkcje skrótu zapewniają jednokierunkowość, odporność na kolizje i efekt lawinowy.
Atak kolizyjny (Collision Attack)
Znalezienie dwóch różnych wejść, które dają ten sam wynik skrótu. Kolizje MD5 zostały zademonstrowane przez Wanga i współpracowników w 2004 roku, umożliwiając fałszowanie podpisów cyfrowych.
Atak preimage (Preimage Attack)
Znalezienie wejścia, które daje określony wynik skrótu. Trudniejszy niż kolizje, ale nowe badania z 2024 roku znacznie osłabiły odporność MD5 na ataki preimage.
Tabela tęczowa (Rainbow Table)
Wstępnie obliczone tablice wyszukiwania skrót→jawny tekst do szybkiego łamania słabych skrótów haseł. Sole pokonują tablice tęczowe.
HMAC (Hash-based Message Authentication Code)
Kod uwierzytelniania wiadomości oparty na skrócie, który używa tajnego klucza do integralności/uwierzytelniania wiadomości. HMAC-MD5 i HMAC-SHA256 to powszechne warianty.Generator HMAC
bcrypt
Wolny algorytm hashowania haseł z wbudowanym soleniem i konfigurowalnym czynnikiem kosztu, sprawiający, że ataki brute force są nieopłacalne.
Suma kontrolna (Checksum)
Mała stała wartość używana do weryfikacji integralności danych. MD5, SHA-1, SHA-256 są powszechnie używane jako sumy kontrolne do wykrywania uszkodzeń podczas transmisji.
Efekt lawinowy (Avalanche Effect)
Mała zmiana w wejściu (nawet 1 bit) powoduje drastyczną i nieprzewidywalną zmianę w wyjściu skrótu. MD5 nadal ma dobre właściwości lawinowe, co przyczynia się do jego trwałej przydatności w kontrolach nie związanych z bezpieczeństwem.
RFC 1321
Oficjalny standard MD5, przedłożony w IETF przez Ronalda Rivesta w 1992 roku, opisujący kroki algorytmu i wektory testowe.
Fragmentowe hashowanie (Chunked Hashing)
Przetwarzanie dużych plików w blokach zamiast ładowania całego pliku do pamięci, z przyrostowymi aktualizacjami stanu skrótu.

Porównanie powszechnych algorytmów haszujących

AlgorytmBity wyjścioweDługość HexBezpieczeństwoSzybkośćZalecane zastosowanie
MD5128 bitów32 znaki❌ Skompromitowany (kolizje/preimage)EkstremalnaSumy kontrolne plików, deduplikacja, klucze pamięci podręcznej
SHA-1160 bitów40 znaków❌ Kolizje (2017)SzybkiGit, kompatybilność ze starszymi systemami
SHA-256256 bitów64 znaki✅ BezpiecznyŚredniaPodpisy cyfrowe, certyfikaty, blockchain
SHA-512512 bitów128 znaków✅ BezpiecznySzybki (64-bit)Scenariusze wysokiego bezpieczeństwa, wyprowadzanie kluczy
bcrypt-60 znaków✅ Specjalizowany dla hasełWolny (konfigurowalny)Przechowywanie haseł

Oś czasu wydarzeń bezpieczeństwa MD5

RokWydarzenieWpływ
1991Ron Rivest projektuje MD5 (RFC 1321)Zastępuje MD4 i staje się standardowym algorytmem haszującym
1996Odkryto pierwszą wadę pseudokolizji w MD5Społeczność akademicka wyraża obawy
2004Zespół Wang Xiaoyun demonstruje atak kolizyjny na MD5Bezpieczeństwo podpisów cyfrowych MD5 całkowicie złamane
2008Złośliwe oprogramowanie Flame fałszuje certyfikat CA poprzez kolizję MD5NIST oficjalnie odrzuca MD5 dla podpisów cyfrowych
2011NIST SP 800-131A oficjalnie zakazuje MD5 dla celów bezpieczeństwaSystemy rządowe USA wycofują MD5
2024Opublikowano nowy artykuł o ataku preimageOstatnia linia obrony MD5 (odporność na preimage) złamana

Code Examples

MD5/Hashing in JavaScript (Web Crypto supports SHA, MD5 needs library)

// Note: Web Crypto API does NOT support MD5 (deprecated)
// Use SHA-256 instead for new projects
async function sha256(message) {
  const msgBuffer = new TextEncoder().encode(message);
  const hashBuffer = await crypto.subtle.digest('SHA-256', msgBuffer);
  return Array.from(new Uint8Array(hashBuffer)).map(b => b.toString(16).padStart(2,'0')).join('');
}
sha256('Hello World').then(console.log);

// MD5 in Node.js using crypto module
const crypto = require('crypto');
const md5 = crypto.createHash('md5').update('Hello World').digest('hex');
console.log(md5); // b10a8db164e0754105b7a99be72e3fe5

MD5 Hashing in Python

import hashlib
text = 'Hello World'
md5_hash = hashlib.md5(text.encode('utf-8')).hexdigest()
print(md5_hash)  # b10a8db164e0754105b7a99be72e3fe5

# File MD5 (chunked for large files)
def md5_file(filepath, chunk_size=8192):
    md5 = hashlib.md5()
    with open(filepath, 'rb') as f:
        while chunk := f.read(chunk_size):
            md5.update(chunk)
    return md5.hexdigest()

# HMAC-MD5
import hmac
hmac_md5 = hmac.new(b'secret-key', b'Hello World', hashlib.md5).hexdigest()
print(hmac_md5)

MD5 Hashing in Java

import java.security.MessageDigest;
import java.nio.charset.StandardCharsets;

public class MD5Example {
    public static String md5(String input) throws Exception {
        MessageDigest md = MessageDigest.getInstance("MD5");
        byte[] hash = md.digest(input.getBytes(StandardCharsets.UTF_8));
        StringBuilder sb = new StringBuilder();
        for (byte b : hash) sb.append(String.format("%02x", b));
        return sb.toString();
    }
    public static void main(String[] args) throws Exception {
        System.out.println(md5("Hello World"));
        // b10a8db164e0754105b7a99be72e3fe5
    }
}
// Note: Use SHA-256 for new code: MessageDigest.getInstance("SHA-256")

Authoritative References