Algoritma Hash Dijelaskan: MD5, SHA-1, SHA-256, SHA-512
Jawaban Cepat
MD5 dan SHA-1 rusak dan tidak boleh digunakan untuk tujuan sensitif keamanan. SHA-256 adalah default saat ini untuk pemeriksaan integritas, tanda tangan, dan blockchain. SHA-512 lebih cepat pada CPU 64-bit dan digunakan jika diinginkan proses pencernaan yang lebih lama. Gunakan Hash Generator kami untuk menghitung semua ini di browser Anda; gunakan File Hash untuk memverifikasi integritas file.
Perkenalan
Fungsi hash kriptografi mengambil masukan dengan ukuran sembarang dan menghasilkan intisari berukuran tetap yang bersifat deterministik, cepat dihitung, tidak layak untuk dibalik, tahan benturan, dan sensitif terhadap longsoran salju (perubahan satu bit mengubah kira-kira setengah bit keluaran). MD5 (128-bit), SHA-1 (160-bit), SHA-256 (256-bit), dan SHA-512 (512-bit) adalah empat fungsi hash yang paling umum ditemui, namun properti keamanannya sangat berbeda.
Langkah demi Langkah
-
Memahami properti fungsi hash
Hash kriptografi yang baik bersifat deterministik (input yang sama selalu menghasilkan output yang sama), output berukuran tetap, cepat dihitung, tidak layak untuk dibalik (resistensi pra-gambar), tidak layak untuk menemukan dua input dengan output yang sama (resistensi tabrakan), dan longsoran (perubahan input kecil membalik ~50% bit output).
-
Ketahui ukuran intisari
MD5 menghasilkan 128 bit (32 karakter hex). SHA-1 menghasilkan 160 bit (40 karakter hex). SHA-256 menghasilkan 256 bit (64 karakter hex). SHA-512 menghasilkan 512 bit (128 karakter hex). Pencernaan yang lebih lama mengurangi kemungkinan tabrakan namun meningkatkan ukuran penyimpanan.
-
Pelajari mengapa MD5 dan SHA-1 rusak
Para peneliti menemukan serangan tabrakan praktis terhadap MD5 (2004) dan SHA-1 (2017, serangan SHAttered). Tabrakan memungkinkan penyerang membuat dua masukan berbeda dengan hash yang sama, sehingga merusak tanda tangan digital dan otoritas sertifikat. Keduanya tidak boleh digunakan untuk keamanan.
-
Pilih algoritma yang tepat
Untuk pemeriksaan integritas file yang mengutamakan kecepatan daripada keamanan, MD5 atau SHA-1 masih umum digunakan. Untuk penggunaan apa pun yang sensitif terhadap keamanan (kata sandi, tanda tangan, sertifikat, blockchain), gunakan SHA-256 atau SHA-512. Untuk penyimpanan kata sandi, gunakan KDF yang lambat seperti bcrypt, scrypt, atau Argon2 —jangan pernah SHA-256 mentah.
-
Hitung dan verifikasi hash
Gunakan Hash Generator untuk melakukan hash teks dengan algoritma apa pun, atau File Hash untuk menghitung hash file lokal. Bandingkan intisari yang dihasilkan dengan nilai yang diketahui baik untuk memverifikasi integritas — perbedaan bit tunggal berarti file tersebut rusak atau dirusak.
Contoh
MD5 dari 'halo' (128-bit, 32 karakter hex)
Masukan: hello
Keluaran: 5d41402abc4b2a76b9719d911017c592
SHA-256 dari 'halo' (256-bit, 64 karakter hex)
Masukan: hello
Keluaran: 2cf24dba5fb0d30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
Efek longsoran salju —satu perubahan karakter
Masukan: halo vs halo
Keluaran: SHA-256('hello') memulai 2cf24dba... sementara SHA-256('Hello') memulai 185f8db3... —sangat berbeda meskipun inputnya berubah satu bit
Masalah Umum
- Menggunakan MD5 atau SHA-1 untuk hashing kata sandi: keduanya cepat dan rusak, membuat serangan brute force dan rainbow-table menjadi sepele. Gunakan bcrypt, scrypt, atau Argon2 sebagai gantinya.
- Membingungkan hashing dengan enkripsi: hashing bersifat satu arah dan tidak dapat diubah; enkripsi adalah dua arah. Anda tidak dapat 'mendekripsi' suatu hash —Anda hanya dapat membandingkan hash.
- Mengabaikan serangan ekstensi panjang: MD5, SHA-1, SHA-256, dan SHA-512 semuanya rentan terhadap serangan ekstensi panjang saat digunakan sebagai MAC. Gunakan HMAC-SHA256 untuk otentikasi pesan.
- Membandingkan hash dengan == alih-alih perbandingan waktu yang konstan: kebocoran waktu memungkinkan penyerang memulihkan hash byte demi byte. Gunakan perbandingan waktu konstan dalam kode keamanan.
Kiat
- Defaultnya adalah SHA-256 untuk sistem baru — cepat, didukung secara luas, dan tidak memiliki serangan tabrakan praktis pada tahun 2026.
- Untuk penyimpanan kata sandi, gunakan bcrypt dengan faktor kerja 12+ (atau Argon2id dengan memori 64MB) —jangan pernah SHA-256 mentah, yang terlalu cepat terhadap GPU.
- Saat memverifikasi unduhan file, bandingkan nama algoritme dan intisarinya —hash SHA-1 tidak ada artinya jika penerbit hanya menginginkan SHA-256.
- Gunakan alat File Hash kami untuk menghitung SHA-256 file besar secara lokal tanpa mengunggah — alat ini mengalirkan file melalui Web Crypto API.