MD5 vs SHA-256 - kapan menggunakan setiap fungsi hash
MD5 dan SHA-256 menghasilkan sidik jari dengan panjang tetap dari data input sembarang. Mereka terlihat dapat dipertukarkan dari luar - tempel teks, dapatkan hex - tetapi mereka memecahkan masalah yang berbeda. MD5 adalah sidik jari cepat, secara kriptografi rusak, cocok untuk pemeriksaan integritas non-adversarial. SHA-256 adalah hash modern, secara kriptografi solid, digunakan di mana saja seorang penyerang mungkin mencoba memalsukan tabrakan. Memilih yang tepat untuk pekerjaan menghemat waktu CPU dan mencegah celah keamanan nyata.
Apa yang sebenarnya dilakukan fungsi hash
Fungsi hash mengambil byte input dengan panjang apapun dan mengembalikan digest dengan panjang tetap. Input yang sama selalu menghasilkan digest yang sama. Mengubah satu bit input menghasilkan digest yang benar-benar berbeda (efek longsor). Digest adalah satu arah - Anda tidak dapat merekonstruksi input dari digest.
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
| 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
Tabrakan adalah dua input berbeda yang menghasilkan digest yang sama. Ketahanan tabrakan MD5 secara teoritis rusak pada 2004 dan praktis rusak pada 2008 - seorang peneliti dapat membuat dua file dengan digest MD5 identik dalam hitungan detik pada hardware konsumen. Ini merusak penggunaan MD5 dalam tanda tangan digital (malware Flame memalsukan tanda tangan Windows Update pada 2012), sertifikat TLS (semua CA besar berhenti menerbitkan cert yang ditandatangani MD5 pada 2014), dan setiap konteks di mana seorang penyerang dapat mempengaruhi input.
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
Integritas file untuk lingkungan non-adversarial. Unduhan ISO Linux menerbitkan MD5 bersama dengan citra; jika hash cocok, unduhan Anda tidak rusak dalam perjalanan. Tidak ada penyerang yang membuat ISO palsu terhadap MD5 spesifik itu - mereka harus menerbitkan file mereka di situs upstream terlebih dahulu.
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
Tanda tangan digital. Sertifikat TLS, penandatanganan kode, penandatanganan JWT - di mana saja penyerang mendapatkan keuntungan dari memalsukan tanda tangan, gunakan SHA-256 atau lebih kuat.
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)
Jangan gunakan MD5 atau SHA-256 secara langsung untuk penyimpanan kata sandi. Keduanya cepat - itu buruk untuk kata sandi. Penyerang dengan digest yang bocor dapat menguji miliaran kata sandi kandidat per detik pada GPU. Gunakan fungsi hash kata sandi: Argon2id (rekomendasi OWASP 2025), bcrypt, atau scrypt. Fungsi-fungsi ini sengaja lambat dan haus memori, sehingga penyerang hanya dapat menguji ribuan kandidat per detik, bukan miliaran.
Realitas kinerja di 2026
MD5 masih ~1,7× lebih cepat daripada SHA-256 pada CPU tanpa SHA-NI. Pada CPU dengan Intel SHA-NI (Goldmont+, 2017) atau ekstensi crypto ARMv8 (Cortex-A53 dan seterusnya), SHA-256 sebenarnya cocok atau melebihi throughput MD5 - kesenjangan kecepatan yang memotivasi pemilihan MD5 pada 2000-an tidak lagi berlaku.
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.
Why trust these tools
- Ten-plus years of web tooling. The freetoolonline editorial team has shipped browser-based utilities since 2015. The goal has never changed: get you to a working output fast, without an install.
- Truly in-browser - no upload. Every file-processing tool on this site runs in your browser through modern Web APIs (File, FileReader, Canvas, Web Audio, WebGL, Web Workers). Your photo, PDF, audio, or text never leaves your device.
- No tracking during tool use. Analytics ends at the page view. The actual input you paste, drop, or capture is never sent to any server and never written to any log.
- Open-source core components. The processing engines underneath (libheif, libde265, pdf-lib, terser, clean-css, ffmpeg.wasm, and others) are public and audit-able. We link to each one in its tool page's footer.
- Free, with or without ads. All tools are fully functional without sign-up. The Disable Ads button in the header is always available if you need a distraction-free run.