Hash MD5
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.
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.
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 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-256MD5 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 SandiSama 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.
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.
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.
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 HMACMD5 (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.
| Algoritma | Bit Output | Panjang Hex | Keamanan | Kecepatan | Penggunaan yang Disarankan |
|---|---|---|---|---|---|
MD5 | 128 bit | 32 karakter | ❌ Telah disusupi (tabrakan/preimage) | Sangat cepat | Checksum berkas, deduplikasi, kunci cache |
SHA-1 | 160 bit | 40 karakter | ❌ Tabrakan (2017) | Cepat | Git, kompatibilitas sistem lama |
SHA-256 | 256 bit | 64 karakter | ✅ Aman | Sedang | Tanda tangan digital, sertifikat, blockchain |
SHA-512 | 512 bit | 128 karakter | ✅ Aman | Cepat (64-bit) | Skenario keamanan tinggi, turunan kunci |
bcrypt | - | 60 karakter | ✅ Khusus kata sandi | Lambat (dapat disesuaikan) | Penyimpanan kata sandi |
| Tahun | Peristiwa | Dampak |
|---|---|---|
1991 | Ron Rivest merancang MD5 (RFC 1321) | Menggantikan MD4 dan menjadi algoritma hash standar |
1996 | Cacat tabrakan semu pertama pada MD5 ditemukan | Komunitas akademik menyampaikan kekhawatiran |
2004 | Tim Wang Xiaoyun mendemonstrasikan serangan tabrakan MD5 | Keamanan tanda tangan digital MD5 sepenuhnya rusak |
2008 | Malware Flame memalsukan sertifikat CA melalui tabrakan MD5 | NIST secara resmi menolak MD5 untuk tanda tangan digital |
2011 | NIST SP 800-131A secara resmi melarang MD5 untuk tujuan keamanan | Sistem pemerintah AS menghapus MD5 secara bertahap |
2024 | Makalah serangan preimage baru diterbitkan | Garis pertahanan terakhir MD5 (ketahanan preimage) ditembus |
// 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); // b10a8db164e0754105b7a99be72e3fe5import 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)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")