Tidak suka iklan? Pergi Bebas Iklan Hari ini

MD5, SHA-256, SHA-3 Algoritma Hash Apa yang Anda Butuhkan Sebenarnya?

Diterbitkan pada

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.

MD5, SHA-256, SHA-3: Algoritma Hash Apa yang Anda Butuhkan Sebenarnya? 1
IKLAN · HAPUS?

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.

Ingin bebas iklan? Bebas Iklan Hari Ini

Instal Ekstensi Kami

Tambahkan alat IO ke browser favorit Anda untuk akses instan dan pencarian lebih cepat

Ke Ekstensi Chrome Ke Ekstensi Tepi Ke Ekstensi Firefox Ke Ekstensi Opera

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!

IKLAN · HAPUS?
IKLAN · HAPUS?
IKLAN · HAPUS?

Pojok Berita dengan Sorotan Teknologi

Terlibat

Bantu kami untuk terus menyediakan alat gratis yang berharga

Belikan aku kopi
IKLAN · HAPUS?