Skrót MD5
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
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.
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
Jak Używać
- Wybierz tryb: Tekst, Plik, Wsadowy lub HMAC-MD5
- Skonfiguruj opcje: kodowanie, wielkie litery, grupowanie po 8 znaków
- Wprowadź tekst, prześlij plik lub wklej zawartość wsadową
- Skopiuj wynik skrótu do weryfikacji lub skryptów
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
Przykłady kodu
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); // b10a8db164e0754105b7a99be72e3fe5MD5 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")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-256Dlaczego 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 HMACSłownik
- 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
| Algorytm | Bity wyjściowe | Długość Hex | Bezpieczeństwo | Szybkość | Zalecane zastosowanie |
|---|---|---|---|---|---|
MD5 | 128 bitów | 32 znaki | ❌ Skompromitowany (kolizje/preimage) | Ekstremalna | Sumy kontrolne plików, deduplikacja, klucze pamięci podręcznej |
SHA-1 | 160 bitów | 40 znaków | ❌ Kolizje (2017) | Szybki | Git, kompatybilność ze starszymi systemami |
SHA-256 | 256 bitów | 64 znaki | ✅ Bezpieczny | Średnia | Podpisy cyfrowe, certyfikaty, blockchain |
SHA-512 | 512 bitów | 128 znaków | ✅ Bezpieczny | Szybki (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
| Rok | Wydarzenie | Wpływ |
|---|---|---|
1991 | Ron Rivest projektuje MD5 (RFC 1321) | Zastępuje MD4 i staje się standardowym algorytmem haszującym |
1996 | Odkryto pierwszą wadę pseudokolizji w MD5 | Społeczność akademicka wyraża obawy |
2004 | Zespół Wang Xiaoyun demonstruje atak kolizyjny na MD5 | Bezpieczeństwo podpisów cyfrowych MD5 całkowicie złamane |
2008 | Złośliwe oprogramowanie Flame fałszuje certyfikat CA poprzez kolizję MD5 | NIST oficjalnie odrzuca MD5 dla podpisów cyfrowych |
2011 | NIST SP 800-131A oficjalnie zakazuje MD5 dla celów bezpieczeństwa | Systemy rządowe USA wycofują MD5 |
2024 | Opublikowano nowy artykuł o ataku preimage | Ostatnia linia obrony MD5 (odporność na preimage) złamana |
Authoritative References
- Bezpieczne porównanie ciągów znaków
- Konwersja binarna
- Szyfr Cezara
- Kod Morse'a
- Szesnastkowy
- Video do Base64
- Base64 na wideo
- Obraz na Base64
- Base64 na obraz
- Tekst na Base64
- Base64 na tekst
- Weryfikacja haszu pliku
- Plik na Base64
- Base64 na plik
- Audio na Base64
- Base64 na Audio
- Szyfrowanie i deszyfrowanie AES
- Szyfrowanie i deszyfrowanie DES
- Koder Dekoder Base32
- Base58 kodowanie i dekodowanie
- Kodowanie Base64
- Dekodowanie Base64
- Porównanie Base64
- Podział Base64
- Base64 łączenie wielu linii
- Formatowanie Base64
- Sprawdzanie formatu Base64
- Wsadowe kodowanie Base64
- Batchowe dekodowanie Base64
- Czyszczenie Base64
- Narzędzie paddingu Base64
- Statystyki długości Base64
- Base64 na szesnastkowy
- Konwerter Base64 DataURL
- Konwerter Base64-Hex
- Koder/Dekoder Base85
- Generator i weryfikator HMAC
- Derywacja klucza PBKDF2
- Skrót MD5
- Hash SHA-256
- Hash SHA-1
- Hash SHA512
- Narzędzie JWT
- Kodowanie i dekodowanie encji HTML
- Unikod - sekwencje ucieczki
- Kodowanie URL
- Base64 URL Safe
- MIME Base64
- Obfuskacja Java
- Obfuskacja JS
- Obfuskacja PHP
- Obfuskacja Python