MD5, SHA-256, SHA-3 Algoritma Hash Apa yang Anda Butuhkan Sebenarnya?
Perbandingan langsung antara MD5, SHA-1, SHA-256, SHA-3, dan BLAKE3 — kapan setiap algoritma sesuai digunakan, di mana mereka gagal, dan mana yang sebaiknya digunakan secara default.
Jika Anda masih menggunakan MD5 secara default, Anda berada dalam kelompok yang besar — dan kemungkinan besar Anda membuat keputusan yang salah. Fungsi hash semua menghasilkan "jari-jari" panjang tetap dari data Anda, tetapi mereka tidak dapat diganti. Memilih yang salah adalah kelebihan yang parah atau kegagalan keamanan nyata, tergantung pada arah kesalahan yang Anda tebak.
Berikut ini apa yang dilakukan setiap algoritma, di mana mereka gagal, dan apa yang sebaiknya Anda gunakan sebagai pengganti.
Apa yang Dilakukan oleh Fungsi Hash
Fungsi hash kriptografi menerima masukan berukuran apa saja dan menghasilkan keluaran berukuran tetap — deterministik, satu arah, dan (secara ideal) tahan terhadap kolisi. Input yang sama selalu menghasilkan hash yang sama. Anda tidak bisa membalikkannya. Dan mengubah satu byte saja dalam input akan mengubah keluaran secara total.
Ketiga sifat ini membuat fungsi hash berguna untuk memverifikasi integritas data, menandatangani dokumen, dan membuat checksum. Semua algoritma di bawah ini melakukan hal ini. Yang membedakannya adalah seberapa baik mereka menahan serangan, dan seberapa cepat mereka berjalan.
MD5: Berhenti Menggunakannya untuk Keamanan
MD5 menghasilkan hash 128-bit dan berjalan cepat — yang merupakan masalahnya. MD5 dirancang pada tahun 1991, dan pada tahun 2004 para peneliti telah menunjukkan serangan kolisi terhadapnya. Hari ini, menghasilkan dua file yang berbeda yang menghasilkan hash MD5 yang sama adalah hal yang komputasionalnya sangat mudah.
Di mana ia gagal: Setiap konteks keamanan — pemeriksaan integritas file melalui saluran yang tidak dipercaya, tanda tangan digital, sertifikat TLS.
Di mana masih cukup baik: Checksum yang tidak terkait dengan keamanan. Deduplikasi file, pembuatan kunci cache, pencitraan konten dalam sistem yang Anda kendalikan — MD5 cepat dan cukup baik. Kolisi hanya menjadi masalah jika penyerang dapat memanfaatkannya.
Perlu menghasilkan hash MD5 dengan cepat? Gunakan Generator MD5.
SHA-1: Didekrestitasikan, Masih Ada
SHA-1 menghasilkan keluaran 160-bit dan memiliki masalah dasar yang sama: serangan kolisi telah dibuktikan. Serangan SHAttered oleh Google pada tahun 2017 menghasilkan dua file PDF yang berbeda dengan hash SHA-1 yang sama, dengan biaya yang kini praktis dapat diakses oleh para penyerang yang berminat.
Secara resmi didekrestitasikan untuk tanda tangan digital dan sertifikat TLS. Anda masih akan menemukannya di Git, di mana digunakan sebagai identifikasi konten — model ancaman di sana berbeda, dan Git sedang aktif beralih ke SHA-256.
Aturan: Jangan gunakan SHA-1 untuk pekerjaan keamanan baru. Tandai untuk migrasi di sistem lama.
SHA-256 dan SHA-512: Standar Saat Ini
SHA-256 (bagian dari keluarga SHA-2) adalah yang seharusnya Anda gunakan secara default untuk kebanyakan aplikasi kriptografi. Keluaran 256-bit, tidak ada serangan praktis yang diketahui, didukung di setiap bahasa dan platform yang Anda gunakan.
SHA-512 menggunakan keadaan internal 512-bit dan menghasilkan keluaran 512-bit. Pada CPU 64-bit, ia sering cepat daripada SHA-256 untuk input besar karena cara pengolahannya dalam blok. Untuk kebanyakan pekerjaan pada lapisan aplikasi, SHA-256 cukup baik. Jika Anda melakukan pemrosesan data berkecepatan tinggi atau membutuhkan margin tambahan dalam penurunan kunci, uji coba SHA-512.
Kapan digunakan: Pemeriksaan integritas file, HMAC, penandatanganan sertifikat (dengan RSA/ECDSA), tanda tangan permintaan API, token JWT.
SHA-3: Arsitektur Berbeda, Kasus Penggunaan Khusus
SHA-3 (Keccak) dipilih oleh NIST pada tahun 2015 secara khusus sebagai alternatif arsitektur terhadap SHA-2. Di mana SHA-2 menggunakan konstruksi Merkle-Damgård, SHA-3 menggunakan konstruksi spons. Jika kelemahan dasar ditemukan dalam desain SHA-2, maka SHA-3 tidak akan terpengaruh.
Ia menghasilkan ukuran keluaran yang sama (SHA3-256, SHA3-512, dll.) dan melewati semua analisis keamanan saat ini, tetapi secara umum lebih lambat daripada SHA-256 dalam perangkat lunak.
Kapan digunakan: Sistem kriptografi jangka panjang di mana independensi arsitektur dari SHA-2 penting — modul keamanan hardware, konteks pemerintahan atau kepatuhan, atau di mana Anda secara eksplisit menghindari kelemahan masa depan SHA-2. Untuk kebanyakan aplikasi web, ini adalah kelebihan teoritis.
BLAKE3: Pilihan Kecepatan Modern
BLAKE3 bukan standar NIST (masih), tetapi telah memiliki adopsi yang serius: Rust’s cargo, format hash streaming Bao, dan daftar semakin banyak alat keamanan dan penyimpanan yang menggunakan hal ini. Dirancang untuk paralelisme, ia berjalan secara signifikan lebih cepat daripada SHA-256 dalam perangkat lunak sambil tetap tahan terhadap analisis kriptografi saat ini.
Kapan digunakan: Checksum kecepatan tinggi, penandaan konten, di mana Anda mengontrol kedua ujung dan membutuhkan kecepatan tanpa mengorbankan keamanan. Hindari penggunaannya di tempat yang SHA-2 secara eksplisit ditentukan oleh spesifikasi — sertifikat X.509, token JWT, dan konteks lain yang ditentukan oleh standar.
Perbandingan Algoritma Hash
| Algoritma | Status Keamanan | Ukuran Keluaran | Kecepatan (perangkat lunak) | Kasus Penggunaan |
|---|---|---|---|---|
| MD5 | Dibroken (kolisi) | 128-bit | Sangat cepat | Checksum tidak terkait keamanan, deduplikasi |
| SHA-1 | Dibroken (kolisi) | 160-bit | Cepat | Hanya untuk sistem lama; identifikasi konten di Git |
| SHA-256 | Aman | 256-bit | Cepat | Umum — pilihan default |
| SHA-512 | Aman | 512-bit | Cepat pada 64-bit untuk data besar | Pemrosesan berkecepatan tinggi atau margin tambahan |
| SHA-3 | Aman | 224–512-bit | Lambat dalam perangkat lunak | Sistem jangka panjang yang membutuhkan independensi dari SHA-2 |
| BLAKE3 | Aman | 256-bit | Sangat cepat (paralel) | Penandaan konten berkecepatan tinggi |
Penghitungan SHA-256
Tiga cara cepat untuk menghitung hash SHA-256:
Python:
import hashlib
data = b"hello world"
digest = hashlib.sha256(data).hexdigest()
print(digest)
# Output: b94d27b9934d3e08a52e52d7da7dabfac484efe04294e576fba1d63e8d4d0b4b
Node.js:
const { createHash } = require('crypto');
const digest = createHash('sha256')
.update('hello world')
.digest('hex');
console.log(digest);
Bash:
echo -n "hello world" | sha256sum
Perlu menghitung sesuatu dengan cepat tanpa menulis kode? The Generator Hash mendukung MD5, SHA-1, SHA-256, SHA-512, dan lainnya — langsung dari browser Anda.
Panduan Keputusan
| Kasus Penggunaan | Apa yang harus digunakan |
|---|---|
| Deduplikasi / kunci cache | MD5 atau SHA-256 |
| Integritas file (saluran terpercaya) | MD5 cukup baik |
| Integritas file (unduhan, tidak terpercaya) | SHA-256 |
| Tanda tangan digital | SHA-256 atau SHA-512 |
| HMAC dan autentikasi API | SHA-256 |
| Sertifikat TLS | SHA-256 |
| Penyimpanan kata sandi | bcrypt, Argon2, atau scrypt — bukan salah satu dari yang di atas |
| Penandaan konten berkecepatan tinggi | BLAKE3 |
| Kepatuhan standar | SHA-256 (periksa persyaratan spesifikasi) |
Satu poin perlu ditekankan secara eksplisit: tidak ada algoritma di atas yang seharusnya digunakan secara langsung untuk menghash kata sandi. Semuanya dirancang cepat, yang membuatnya berguna untuk serangan brute-force. Gunakan bcrypt, Argon2id, atau scrypt — algoritma yang dirancang secara sengaja lambat dan membutuhkan memori, tepat karena pengecualian kata sandi adalah permainan lawan.
Jawaban Singkat
Untuk kode baru: Gunakan SHA-256 secara default. Gunakan SHA-512 jika Anda membutuhkan ukuran keluaran yang lebih besar atau sedang menghash aliran besar pada perangkat 64-bit. Gunakan BLAKE3 jika Anda membutuhkan throughput tinggi dan mengontrol kedua ujung. Gunakan SHA-3 hanya jika Anda memiliki alasan arsitektur khusus untuk tetap independen dari SHA-2.
MD5 cukup baik untuk pencitraan internal dan deduplikasi di mana kolisi tidak menjadi masalah keamanan. Ini tidak cukup baik untuk apa pun yang memungkinkan penyerang memanfaatkan pencocokan.
Jika ragu, gunakan SHA-256. Ini telah menjadi jawaban yang benar selama satu dekade dan akan terus menjadi jawaban yang benar ke depannya.
Instal Ekstensi Kami
Tambahkan alat IO ke browser favorit Anda untuk akses instan dan pencarian lebih cepat
恵 Papan Skor Telah Tiba!
Papan Skor adalah cara yang menyenangkan untuk melacak permainan Anda, semua data disimpan di browser Anda. Lebih banyak fitur akan segera hadir!
Alat Wajib Coba
Lihat semua Pendatang baru
Lihat semuaMemperbarui: Kita alat terbaru ditambahkan pada 20 Apr 2026
