MD5 vs SHA-256 - kapan menggunakan setiap fungsi hash
freetoolonline.com Editorial Team
MD5 dan SHA-256 keduanya menghasilkan sidik jari panjang tetap dari input apapun, tetapi hanya SHA-256 yang aman terhadap input adversarial. Ketahanan tabrakan MD5 gagal pada 2004. Untuk tanda tangan digital, gunakan SHA-256. Untuk pemeriksaan integritas non-adversarial, MD5 masih oke.
Apa yang sebenarnya dilakukan fungsi hash
Fungsi hash mengubah input apa pun menjadi sidik jari panjang tetap: byte yang sama selalu menghasilkan digest yang sama, dan satu bit yang berubah mengubah seluruh keluaran.
MD5 mengembalikan 128 bit (32 karakter hex). SHA-256 mengembalikan 256 bit (64 karakter hex). Keduanya deterministik. Keduanya cepat. Keduanya tidak mengungkapkan apapun tentang struktur input dari output.
Perbandingan berdampingan
MD5 adalah 128-bit dan sudah rusak oleh collision; SHA-256 adalah 256-bit dan masih menjadi default untuk integritas serta tanda tangan di 2026.
| Atribut | MD5 | SHA-256 |
|---|---|---|
| Panjang digest | 128 bit (32 karakter hex) | 256 bit (64 karakter hex) |
| Dirancang | 1991 (Ron Rivest) | 2001 (NSA, FIPS 180-2) |
| Keluarga | garis keturunan MD4 | keluarga SHA-2 |
| Ketahanan tabrakan | Rusak sejak 2004 (Wang et al.); tabrakan praktis dalam hitungan detik | Tidak ada tabrakan praktis yang diketahui; ~2128 operasi untuk menemukan satu |
| Ketahanan preimage kedua | Dilemahkan tetapi tidak ada serangan praktis untuk input yang dihitung sebelumnya | Kuat; ~2256 operasi |
| Kecepatan (x86-64 modern) | ~500 MB/s per inti | ~300 MB/s per inti (SHA-NI: ~1,5 GB/s) |
| Akselerasi hardware | Tidak ada instruksi khusus | Intel SHA-NI, ekstensi crypto ARMv8 |
| Aman untuk penggunaan kriptografi | Tidak - jangan gunakan untuk tanda tangan, cert pinning, hash kata sandi | Ya (di luar hash kata sandi - gunakan Argon2id/bcrypt untuk kata sandi) |
Mengapa MD5 rusak dan apa artinya sebenarnya
Penyerang dapat membuat dua file berbeda dengan MD5 yang sama, jadi satu MD5 yang cocok saja tidak membuktikan unduhan tidak diubah.
Ketahanan preimage kedua MD5 lebih lemah daripada SHA-256 tetapi tidak ada serangan praktis yang diketahui terhadap input sembarang yang sudah ada. Itu adalah jendela sempit di mana MD5 masih aman: mengkonfirmasi bahwa digest yang sudah dihitung cocok dengan file yang Anda unduh, ketika tidak ada penyerang yang punya kesempatan untuk membuat tabrakan terhadap file spesifik itu.
Kapan MD5 masih baik-baik saja
Checksum cepat tanpa syarat keamanan, manifes legacy, dan deteksi korupsi tidak sengaja semuanya adalah kasus tanpa penyerang pada inputnya, jadi MD5 masih memadai.
Cache de-duplikasi. Proxy caching mengindeks objek berdasarkan MD5 konten mereka untuk mendeteksi pengulangan. Tabrakan dalam konteks ini tidak berbahaya - dua objek berbeda dengan MD5 yang sama berarti satu cache miss, tidak ada konsekuensi keamanan.
Sidik jari baris database. "Apakah catatan ini berubah sejak sinkronisasi terakhir?" - MD5 baris, bandingkan dengan digest yang disimpan. Lebih cepat daripada SHA-256; model adversari tidak ada.
Pengalamatan konten Git. Git menggunakan SHA-1 (segera SHA-256), bukan MD5 - tetapi alasan desain berlaku: untuk penyimpanan yang dialamatkan konten di mana Anda mempercayai penulis, hash 128-bit sudah cukup jika tabrakan bukan vektor serangan.
Kapan SHA-256 adalah pilihan yang tepat
Hash rilis, rantai sertifikat, objek Git, dan setiap kasus di mana pihak ketiga bisa memalsukan MD5 yang bertabrakan semuanya menuntut SHA-256.
Cert pinning dan sidik jari kunci publik. Sidik jari SHA-256 dari kunci publik sertifikat adalah standar untuk pinning.
Blockchain dan penyimpanan yang dapat dialamatkan konten di mana adversari berpartisipasi. Bitcoin menggunakan SHA-256 dua kali (SHA-256d) untuk header blok dan pengidentifikasi transaksi. Setiap penyimpanan di mana pengguna menyumbangkan konten dan tabrakan dapat dieksploitasi membutuhkan SHA-256.
HMAC untuk otentikasi pesan. HMAC-SHA-256 adalah baseline untuk penandatanganan permintaan API (AWS Signature v4, GitHub webhooks, Stripe). HMAC-MD5 masih digunakan dalam beberapa protokol lama tetapi semakin ditandai oleh pemindai kepatuhan.
Apa yang digunakan untuk kata sandi (spoiler: tidak ada)
Kata sandi menuntut hash kata sandi yang lambat dan bersalt seperti Argon2id atau bcrypt. Baik MD5 maupun SHA-256 telanjang dari string kata sandi bukan penyimpanan yang diterima.
Realitas kinerja di 2026
Kedua algoritme menyelesaikan file besar di browser dalam hitungan detik, jadi pilih SHA-256 karena properti kepercayaannya, bukan karena MD5 jauh lebih cepat untuk unggahan biasa.
JavaScript dalam browser dengan WebCrypto (crypto.subtle.digest('SHA-256', data)) mencapai ~200 MB/s pada laptop modern. Konverter MD5 kami menjalankan MD5 pada kecepatan serupa melalui implementasi wasm.
MD5 atau SHA-256: aturan batas kepercayaan
Pilihan antara MD5 dan SHA-256 bergantung pada satu pertanyaan - apakah adversari dapat mempengaruhi input yang Anda hash. Jika uploader jarak jauh, penyerang jaringan, atau pihak apapun di luar batas kepercayaan Anda dapat membentuk byte yang mencapai fungsi hash, pilih SHA-256 (atau SHA-3, atau BLAKE3) sehingga serangan tabrakan tidak dapat memalsukan digest yang cocok. Jika input berasal dari pipeline Anda sendiri dan Anda men-sidik-jari mereka untuk caching, de-duplikasi, atau deteksi perubahan, MD5 baik-baik saja dan berjalan sedikit lebih cepat pada CPU tanpa akselerasi SHA-NI. Keputusan bersifat biner dan hidup di batas kepercayaan; setelah Anda menamai di sisi mana batas itu input berada, algoritma yang digunakan ditentukan.
Alat terkait
- MD5 Converter - hitung MD5 dari teks atau file kecil di browser.
- Text Diff - bandingkan dua blok teks baris demi baris.
- Text / HTML Editor - render HTML dan Markdown langsung.
- Current Time (ms) - waktu epoch untuk korelasi log.
- MD5 alternatives - bcrypt, Argon2id, SHA-256 - algoritma mana yang menggantikan MD5 untuk setiap kasus penggunaan, termasuk hashing kata sandi dan penandatanganan.
- MD5 hash decrypt - when lookup works, when it cannot - apa yang sebenarnya dilakukan "membalik MD5" dan kondisi ketika pencarian kamus berhasil.