MD5 Hash Generator

Hasilkan hash MD5 dari teks apa pun

Teks Input

Berjalan lokal · Aman untuk menempel rahasia

Hash MD5

Hash MD5 akan ditampilkan di sini…

Apa Itu Hashing MD5?

MD5 (Message-Digest Algorithm 5) adalah fungsi hash kriptografis yang menghasilkan digest tetap 128-bit (16 byte) dari input apa pun, terlepas dari ukurannya. Diterbitkan pada 1992 oleh Ronald Rivest sebagai RFC 1321, MD5 dirancang sebagai penerus yang lebih cepat dari MD4 dan dengan cepat menjadi salah satu fungsi hash yang paling banyak digunakan di internet. Algoritma ini memproses input dalam blok 512-bit melalui empat putaran yang masing-masing terdiri dari 16 operasi, menggunakan fungsi nonlinier yang berbeda per putaran, untuk menghasilkan sidik jari heksadesimal 32 karakter.

Fungsi hash adalah transformasi satu arah: dengan input yang diberikan, Anda dapat menghitung hash secara instan, tetapi hanya dengan hash saja, Anda tidak dapat memulihkan input aslinya. Bahkan perubahan satu bit pada input menghasilkan digest yang sama sekali berbeda — properti yang disebut efek avalanche. MD5 memetakan ruang input tak terbatas ke ruang output tetap 128-bit, sehingga tabrakan (dua input berbeda yang menghasilkan hash yang sama) secara matematis pasti ada, tetapi fungsi hash yang aman membuat penemuannya tidak memungkinkan secara komputasi.

Sejak 2004, para peneliti telah mendemonstrasikan serangan tabrakan praktis terhadap MD5, yang berarti algoritma ini tidak lagi dianggap aman untuk tanda tangan digital, sertifikat, atau konteks apa pun yang memerlukan ketahanan tabrakan. Namun, MD5 tetap banyak digunakan untuk tujuan non-keamanan: memverifikasi integritas berkas setelah pengunduhan, menghasilkan kunci cache, mendeduplikasi konten, dan membuat pengenal deterministik dari string. Untuk aplikasi ini, kecepatan algoritma dan dukungan pustaka yang luas menjadikannya pilihan praktis. Pada 2008, Marc Stevens dan kolega menerbitkan serangan tabrakan chosen-prefix, yang berarti penyerang dapat membuat dua dokumen dengan awalan yang dipilih secara bebas yang memiliki digest yang sama. Teknik ini didemonstrasikan di Chaos Communication Congress 2008 dengan membuat sertifikat Certification Authority palsu. Malware Flame pada 2012 kemudian mengeksploitasi tabrakan chosen-prefix untuk memalsukan sertifikat penandatanganan kode Microsoft, memungkinkan malware menyamar sebagai paket Windows Update yang sah. Eksploitasi nyata ini mengonfirmasi bahwa algoritma ini telah rusak secara kriptografis untuk penggunaan berbasis kepercayaan dan tidak boleh diandalkan ketika musuh dapat memengaruhi input yang di-hash.

Mengapa Menggunakan Generator MD5 Ini?

Hasilkan hash MD5 secara instan tanpa menginstal apa pun atau menulis kode. Tempelkan teks Anda dan dapatkan digest hex 32 karakter secara real time.

Hashing Instan
Output diperbarui saat Anda mengetik. Tanpa klik tombol, tanpa menunggu — digest MD5 muncul karakter demi karakter saat Anda mengubah input.
🔒
Pemrosesan Mengutamakan Privasi
Semua hashing berjalan secara lokal di browser Anda menggunakan JavaScript. Teks input Anda tidak pernah meninggalkan perangkat Anda dan tidak pernah dikirim ke server mana pun.
📋
Salin dengan Satu Klik
Salin hash ke clipboard dengan satu klik. Beralih antara output hex huruf kecil dan huruf besar sesuai format yang diharapkan sistem Anda.
🔍
Tanpa Akun
Tanpa pendaftaran, tanpa login, tanpa batas penggunaan. Buka halaman dan mulai hashing seketika. Bekerja di perangkat apa pun dengan browser modern.

Kasus Penggunaan MD5

Pengembangan Frontend
Hasilkan hash cache-busting untuk aset statis. Tambahkan digest MD5 dari konten berkas ke URL CSS dan JavaScript agar browser mengambil versi terbaru saat konten berubah.
Rekayasa Backend
Buat kunci cache deterministik dari parameter query yang kompleks atau isi permintaan. Hash MD5 menghasilkan kunci tetap berukuran ringkas yang cocok untuk Redis, Memcached, dan lapisan cache CDN.
DevOps & CI/CD
Verifikasi integritas berkas setelah transfer dengan membandingkan checksum MD5. Banyak registri paket dan repositori artefak menerbitkan digest MD5 bersama unduhan untuk verifikasi cepat.
QA & Pengujian
Bandingkan hash MD5 respons API, dump basis data, atau berkas konfigurasi untuk mendeteksi perubahan tak terduga antar sesi pengujian tanpa membandingkan seluruh konten.
Rekayasa Data
Deduplikasi rekaman dalam pipeline ETL dengan menghitung hash MD5 dari konten baris. Dua baris dengan hash yang sama adalah kandidat deduplikasi, mengurangi biaya penyimpanan dan pemrosesan.
Pembelajaran & Pendidikan
Bereksperimen dengan fungsi hash untuk memahami transformasi satu arah, efek avalanche, dan mengapa ketahanan tabrakan penting untuk keamanan. MD5 adalah hash paling sederhana yang dikenal luas untuk dipelajari.

MD5 vs Algoritma Hash Lainnya

MD5 adalah yang tercepat dan terpendek di antara algoritma hash umum, tetapi menawarkan jaminan keamanan paling lemah. Tabel di bawah membandingkan ukuran digest, standar, dan kasus penggunaan yang tepat untuk setiap algoritma.

AlgoritmaUkuran DigestPanjang HexStandarTerbaik Untuk
MD5128 bits32 hex chars1992 / RFC 1321Checksums, non-security fingerprints
SHA-1160 bits40 hex chars1995 / RFC 3174Legacy git commits (being replaced)
SHA-256256 bits64 hex chars2001 / FIPS 180-4TLS certificates, blockchain, JWTs
SHA-384384 bits96 hex chars2001 / FIPS 180-4Government systems, higher security margin
SHA-512512 bits128 hex chars2001 / FIPS 180-4Digital signatures, HMAC with large keys
SHA-3256 bits64 hex chars2015 / FIPS 202Post-quantum readiness, backup standard
BLAKE3256 bits64 hex chars2020High-performance checksums, Merkle trees

Cara Kerja MD5

MD5 memproses input melalui konstruksi Merkle-Damgard: pesan diisi ke kelipatan 512 bit, dibagi menjadi blok-blok, dan setiap blok diproses melalui empat putaran yang masing-masing terdiri dari 16 operasi bitwise yang mencampur input dengan konstanta turunan sinus yang telah dihitung sebelumnya. Hasilnya adalah status 128-bit yang menjadi digest akhir.

Setiap putaran menerapkan fungsi bantu nonlinier yang berbeda pada tiga dari empat kata status 32-bit (A, B, C, D). Putaran 1 menggunakan F(B,C,D) = (B AND C) OR (NOT B AND D) — pemilih kondisional bitwise. Putaran 2 menggunakan G(B,C,D) = (B AND D) OR (C AND NOT D) — pemilih komplementer. Putaran 3 menggunakan H(B,C,D) = B XOR C XOR D — fungsi paritas. Putaran 4 menggunakan I(B,C,D) = C XOR (B OR NOT D) — penggabung asimetris. Keempat fungsi ini memastikan setiap bit input memengaruhi digest output, menghasilkan efek avalanche yang membuat perubahan kecil pada input menyebabkan perubahan besar dan tidak dapat diprediksi pada hash yang dihasilkan.

Input: "hello world"
MD5: 5eb63bbbe01eeed093cb22bb8f5acdc3
(128 bits = 16 bytes = 32 hex characters)

Algoritma berjalan dalam lima tahap: (1) tambahkan bit 1, lalu nol, hingga panjang pesan adalah 448 mod 512; (2) tambahkan panjang pesan asli sebagai bilangan bulat 64-bit little-endian; (3) inisialisasi empat variabel status 32-bit (A, B, C, D) dengan konstanta tetap; (4) proses setiap blok 512-bit melalui 64 operasi menggunakan empat fungsi nonlinier (F, G, H, I), satu per putaran dari 16 operasi; (5) tambahkan status yang dihasilkan ke total berjalan dan keluarkan hash 128-bit akhir dalam urutan byte little-endian.

Contoh Kode

Cara menghasilkan hash MD5 dalam bahasa dan lingkungan yang populer. Perhatikan bahwa MD5 tidak tersedia di Web Crypto API browser — gunakan pustaka atau Node.js.

JavaScript (Web Crypto — browser & Node.js)
// MD5 is not available in Web Crypto API (it only supports SHA-*)
// Use a library like 'js-md5' or the Node.js crypto module

// Node.js (built-in crypto)
const crypto = require('crypto')
const hash = crypto.createHash('md5').update('hello world').digest('hex')
console.log(hash) // → "5eb63bbbe01eeed093cb22bb8f5acdc3"

// With Unicode input
crypto.createHash('md5').update('cafe\u0301').digest('hex')
// → "4fad076bae205e95bec9dacea498e2ab"
Python
import hashlib

# Basic MD5 hash
result = hashlib.md5(b'hello world').hexdigest()
print(result)  # → "5eb63bbbe01eeed093cb22bb8f5acdc3"

# Hash a string (must encode to bytes first)
text = 'hello world'
hashlib.md5(text.encode('utf-8')).hexdigest()
# → "5eb63bbbe01eeed093cb22bb8f5acdc3"

# Hash a file
with open('file.bin', 'rb') as f:
    md5 = hashlib.md5()
    for chunk in iter(lambda: f.read(8192), b''):
        md5.update(chunk)
    print(md5.hexdigest())
Go
package main

import (
    "crypto/md5"
    "fmt"
)

func main() {
    data := []byte("hello world")
    hash := md5.Sum(data)
    fmt.Printf("%x\n", hash)
    // → 5eb63bbbe01eeed093cb22bb8f5acdc3
}
CLI (Linux / macOS)
# Using md5sum (Linux) or md5 (macOS)
echo -n "hello world" | md5sum
# → 5eb63bbbe01eeed093cb22bb8f5acdc3  -

# macOS
echo -n "hello world" | md5
# → 5eb63bbbe01eeed093cb22bb8f5acdc3

# Hash a file
md5sum package.json
# → a1b2c3d4e5f6...  package.json

# Using openssl (cross-platform)
echo -n "hello world" | openssl md5
# → MD5(stdin)= 5eb63bbbe01eeed093cb22bb8f5acdc3

Pertanyaan yang Sering Diajukan

Apakah MD5 masih aman digunakan?
Tidak aman untuk aplikasi yang sensitif terhadap keamanan seperti tanda tangan digital, sertifikat TLS, atau penyimpanan kata sandi. Serangan tabrakan praktis telah didemonstrasikan sejak 2004, dan serangan tabrakan chosen-prefix kini dapat dilakukan dalam hitungan detik pada perangkat keras biasa. Untuk penggunaan non-keamanan — checksum, kunci cache, deduplikasi konten — algoritma ini tetap menjadi pilihan praktis yang didukung luas.
Apa perbedaan antara MD5 dan SHA-256?
Algoritma MD5 menghasilkan digest 128-bit (32 karakter hex) dan rentan terhadap serangan tabrakan. SHA-256 menghasilkan digest 256-bit (64 karakter hex) dan tidak memiliki serangan praktis yang diketahui. SHA-256 sekitar 30-40% lebih lambat dari algoritma lama pada perangkat keras yang sama, tetapi margin keamanan tambahan menjadikannya pilihan default untuk aplikasi apa pun yang memerlukan verifikasi integritas yang tahan terhadap manipulasi musuh.
Bisakah hash MD5 dikembalikan ke input aslinya?
Tidak. Fungsi hash ini dirancang satu arah — ia membuang informasi selama proses hashing. Namun, untuk input yang pendek atau umum, penyerang dapat menggunakan rainbow table (pemetaan hash-ke-plaintext yang telah dihitung sebelumnya) atau brute force untuk menemukan input aslinya. Inilah mengapa MD5 tidak boleh digunakan untuk penyimpanan kata sandi. Gunakan bcrypt, scrypt, atau Argon2 sebagai gantinya.
Mengapa alat yang berbeda kadang menghasilkan hash MD5 yang berbeda untuk teks yang sama?
Penyebab paling umum adalah perbedaan encoding. Algoritma ini beroperasi pada byte, bukan karakter. String 'hello' menghasilkan hash yang berbeda saat di-encode sebagai UTF-8 vs. UTF-16 vs. Latin-1. Masalah lain yang sering terjadi adalah newline di akhir: echo di sebagian besar shell menambahkan newline (\n) kecuali Anda menggunakan echo -n. Selalu verifikasi byte yang tepat yang sedang di-hash.
Berapa lama waktu untuk menghitung hash MD5?
Algoritma ini sangat cepat. Pada perangkat keras modern, ia memproses data dengan kecepatan 3-6 GB/s pada satu inti CPU. GPU dapat menghitung miliaran checksum per detik. Kecepatan ini merupakan keunggulan untuk verifikasi berkas tetapi menjadi kelemahan untuk hashing kata sandi, di mana algoritma yang lebih lambat (bcrypt, Argon2) lebih disukai justru karena tahan terhadap serangan brute-force.
Apa itu tabrakan MD5 dan mengapa penting?
Tabrakan terjadi ketika dua input berbeda menghasilkan digest hash yang sama. Pada 2004, Xiaoyun Wang mendemonstrasikan tabrakan praktis pertama terhadap MD5. Pada 2012, malware Flame mengeksploitasi tabrakan untuk memalsukan sertifikat penandatanganan kode Microsoft. Saat ini, tabrakan identical-prefix dapat dihitung dalam waktu kurang dari satu menit. Hal ini membuat algoritma tidak cocok untuk aplikasi apa pun yang bergantung pada ketahanan tabrakan, seperti tanda tangan digital atau certificate pinning.
Haruskah saya menggunakan MD5 atau CRC32 untuk checksum berkas?
Checksum MD5 adalah pilihan yang lebih baik daripada CRC32 untuk verifikasi integritas berkas. CRC32 adalah kode pendeteksi kesalahan 32-bit yang dirancang untuk menangkap kerusakan tidak disengaja dalam transmisi, bukan manipulasi yang disengaja. Ruang outputnya yang kecil membuat tabrakan sangat mudah dibuat. MD5 memberikan digest 128-bit dengan ketahanan tabrakan tidak disengaja yang jauh lebih kuat. Untuk skenario musuh (memverifikasi unduhan dari sumber yang tidak tepercaya), gunakan SHA-256.