logo
GeekFormat

Hash MD5

Input0 karakter · 0 byte
示例:
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

Alat hash MD5 online gratis. Mode teks/berkas/massal/HMAC-MD5, UTF-8/Latin1, huruf besar, pengelompokan 8 karakter. ⚠️ MD5 telah disusupi — JANGAN gunakan untuk penyimpanan kata sandi.

Rekomendasi Terkait

Kasus penggunaan

  • Integritas berkas: hitung MD5 setelah mengunduh untuk dibandingkan dengan checksum resmi
  • Pembuatan intisari massal untuk berkas konfigurasi atau catatan rilis
  • Penandatanganan HMAC-MD5 untuk integrasi sistem lama
  • Deduplikasi data melalui perbandingan MD5 cepat
  • Pembuatan kunci cache sebagai pengidentifikasi unik pendek
  • Pendidikan: memahami algoritma hash dengan membandingkan output MD5/SHA-1/SHA-256

Fitur

  • Empat mode: Teks, Berkas, Massal per baris dan HMAC-MD5, mencakup skenario checksum umum
  • Pengkodean UTF-8/Latin1 yang dapat dipilih untuk input sistem yang berbeda
  • Tampilan huruf besar dan pengelompokan 8 karakter untuk keterbacaan
  • Hash berkas bertahap: pembacaan inkremental untuk berkas besar mencegah masalah memori
  • Mode massal: setiap baris di-hash secara independen dengan output asli→hash
  • Salin hasil dengan satu klik

Cara Penggunaan

  1. Pilih mode: Teks, Berkas, Massal atau HMAC-MD5
  2. Konfigurasikan opsi: pengkodean, huruf besar, pengelompokan 8 karakter
  3. Masukkan teks, unggah berkas atau tempel konten massal
  4. Salin hasil hash untuk verifikasi atau skrip

Pertanyaan Umum

MD5 biasanya digunakan untuk apa?

MD5 biasanya digunakan untuk pemeriksaan integritas berkas (mis. verifikasi unduhan), pembuatan intisari cepat, kompatibilitas sistem lama, kunci cache dan deduplikasi data dalam skenario non-keamanan. MD5 menghasilkan 128 bit (32 karakter heksadesimal) dan sangat cepat, cocok untuk skenario verifikasi non-kritis.

MD5 vs SHA-256?

MD5 menghasilkan 128 bit (32 hex), sangat cepat tetapi telah disusupi; SHA-256 menghasilkan 256 bit (64 hex), lebih lambat tetapi tidak memiliki serangan tabrakan praktis dan disukai untuk aplikasi kritis.

Alat SHA-256

Mengapa MD5 tidak aman untuk kata sandi?

MD5 sangat cepat — GPU modern dapat menghitung miliaran hash per detik, dan tabel pelangi memecahkan kata sandi umum seketika. Gunakan bcrypt, scrypt atau Argon2 untuk penyimpanan kata sandi.

Generator Kata Sandi

MD5 telah disusupi — apakah saya masih bisa menggunakannya?

Sama sekali TIDAK untuk keamanan (tanda tangan digital, kata sandi, TLS). Tetapi untuk aplikasi non-keamanan (pemeriksaan kerusakan berkas, deduplikasi, kunci cache) MD5 masih cocok, karena penyerang tidak memiliki insentif untuk membuat tabrakan.

Apakah hash MD5 dapat 'didekripsi'?

MD5 adalah fungsi satu arah dan secara matematis tidak dapat dibalik, tetapi tabel pelangi dan brute force dapat memulihkan kata sandi lemah dalam hitungan detik. Itulah sebabnya MD5 tidak boleh digunakan untuk penyimpanan kata sandi.

Apakah berkas besar akan menyebabkan macet?

Tidak. Alat ini menggunakan pembacaan inkremental bertahap — berkas tidak dimuat sepenuhnya ke memori, sehingga bahkan berkas multi-gigabita diproses dengan lancar dengan antarmuka yang responsif.

Apa itu HMAC-MD5 dibandingkan dengan MD5 biasa?

HMAC-MD5 adalah hash dengan kunci yang memerlukan kunci rahasia. Meskipun MD5 biasa telah disusupi, HMAC-MD5 tetap aman ketika kunci tidak diketahui (meskipun migrasi ke HMAC-SHA256 direkomendasikan).

Generator HMAC

Apa itu MD5?

MD5 (Message-Digest Algorithm 5) adalah fungsi hash 128-bit yang dirancang oleh Ronald Rivest pada tahun 1991 (RFC 1321), yang menghasilkan intisari heksadesimal 32 karakter tetap dari input arbitrer. Pernah banyak digunakan untuk tanda tangan digital, verifikasi sertifikat dan penyimpanan kata sandi, MD5 disusupi oleh serangan tabrakan Wang dkk. pada tahun 2004, dan malware Flame menyalahgunakan tabrakan MD5 untuk memalsukan sertifikat CA tepercaya pada tahun 2008.

**Status Keamanan**: NIST secara resmi menolak MD5 untuk tanda tangan digital dalam SP 800-131A (2011). Namun, MD5 tetap berguna untuk skenario non-keamanan: pemeriksaan integritas berkas terhadap kerusakan acak, deduplikasi data dan kunci cache. Pertanyaan kuncinya: apakah penyerang akan mendapat keuntungan dari membuat tabrakan? Jika tidak, kecepatan MD5 adalah keuntungan.

**JANGAN PERNAH menggunakan MD5 untuk penyimpanan kata sandi**: MD5 sangat cepat (miliaran hash/detik pada GPU), yang memungkinkan kata sandi umum dipecahkan seketika dengan brute force. Penyimpanan kata sandi HARUS menggunakan bcrypt, scrypt atau Argon2 — hash lambat dengan faktor biaya yang dapat disesuaikan yang membuat brute force menjadi tidak layak.

**HMAC-MD5 masih aman**: meskipun MD5 biasa telah disusupi, HMAC-MD5 (Kode Otentikasi Pesan berbasis Hash dengan kunci) tetap aman ketika kunci tidak diketahui, karena konstruksi HMAC tidak secara langsung bergantung pada ketahanan tabrakan hash yang mendasarinya. Meskipun demikian, migrasi ke HMAC-SHA256 direkomendasikan.

Alat ini menggunakan implementasi MD5 JavaScript murni (Web Crypto API tidak lagi mendukung MD5). Semua perhitungan dilakukan secara lokal di browser Anda — berkas menggunakan pembacaan inkremental bertahap dan tidak pernah diunggah ke server.

术语表

Fungsi Hash (Hash Function)
Fungsi matematika yang memetakan input panjang arbitrer ke output panjang tetap. Fungsi hash yang baik memberikan satu arah, ketahanan tabrakan dan efek longsoran.
Serangan Tabrakan (Collision Attack)
Menemukan dua input berbeda yang menghasilkan output hash yang sama. Tabrakan MD5 didemonstrasikan oleh Wang dkk. pada tahun 2004, memungkinkan pemalsuan tanda tangan digital.
Serangan Preimage (Preimage Attack)
Menemukan input yang menghasilkan output hash tertentu. Lebih sulit daripada tabrakan tetapi penelitian baru pada tahun 2024 telah melemahkan ketahanan preimage MD5 secara signifikan.
Tabel Pelangi (Rainbow Table)
Tabel pencarian hash→teks biasa yang telah dihitung sebelumnya untuk memecahkan hash kata sandi lemah dengan cepat. Garam mengalahkan tabel pelangi.
HMAC (Hash-based Message Authentication Code)
Kode otentikasi pesan berbasis hash yang menggunakan kunci rahasia untuk integritas/otentikasi pesan. HMAC-MD5 dan HMAC-SHA256 adalah varian umum.Generator HMAC
bcrypt
Algoritma hash kata sandi lambat dengan garam bawaan dan faktor biaya yang dapat disesuaikan, membuat serangan brute force menjadi sangat mahal.
Checksum
Nilai tetap kecil yang digunakan untuk memverifikasi integritas data. MD5, SHA-1, SHA-256 umumnya digunakan sebagai checksum untuk mendeteksi kerusakan selama transmisi.
Efek Longsoran (Avalanche Effect)
Perubahan kecil pada input (bahkan 1 bit) menyebabkan perubahan drastis dan tidak terduga pada output hash. MD5 masih memiliki properti longsoran yang baik, berkontribusi pada kegunaannya yang berkelanjutan dalam pemeriksaan non-keamanan.
RFC 1321
Standar resmi MD5, yang diajukan ke IETF oleh Ronald Rivest pada tahun 1992, menjelaskan langkah-langkah algoritma dan vektor uji.
Hash Bertahap (Chunked Hashing)
Memproses berkas besar dalam blok-blok daripada memuat seluruh berkas ke memori, dengan pembaruan inkremental pada status hash.

Perbandingan Algoritma Hash Umum

AlgoritmaBit OutputPanjang HexKeamananKecepatanPenggunaan yang Disarankan
MD5128 bit32 karakter❌ Telah disusupi (tabrakan/preimage)Sangat cepatChecksum berkas, deduplikasi, kunci cache
SHA-1160 bit40 karakter❌ Tabrakan (2017)CepatGit, kompatibilitas sistem lama
SHA-256256 bit64 karakter✅ AmanSedangTanda tangan digital, sertifikat, blockchain
SHA-512512 bit128 karakter✅ AmanCepat (64-bit)Skenario keamanan tinggi, turunan kunci
bcrypt-60 karakter✅ Khusus kata sandiLambat (dapat disesuaikan)Penyimpanan kata sandi

Linimasa Peristiwa Keamanan MD5

TahunPeristiwaDampak
1991Ron Rivest merancang MD5 (RFC 1321)Menggantikan MD4 dan menjadi algoritma hash standar
1996Cacat tabrakan semu pertama pada MD5 ditemukanKomunitas akademik menyampaikan kekhawatiran
2004Tim Wang Xiaoyun mendemonstrasikan serangan tabrakan MD5Keamanan tanda tangan digital MD5 sepenuhnya rusak
2008Malware Flame memalsukan sertifikat CA melalui tabrakan MD5NIST secara resmi menolak MD5 untuk tanda tangan digital
2011NIST SP 800-131A secara resmi melarang MD5 untuk tujuan keamananSistem pemerintah AS menghapus MD5 secara bertahap
2024Makalah serangan preimage baru diterbitkanGaris pertahanan terakhir MD5 (ketahanan preimage) ditembus

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