#️⃣
Keamanan
May 21, 20267 min readBy BrowseryTools Team

MD5, SHA-256, SHA-512: Generator Hash Gratis dan Kapan Menggunakan Masing-masing

Pahami perbedaan antara MD5, SHA-1, SHA-256, dan SHA-512. Buat hash file dan teks secara instan di browser Anda. Pelajari kapan setiap algoritma tepat digunakan.

hashMD5SHA-256SHA-512checksumkriptografi

Setiap kali Anda mengunduh rilis perangkat lunak, memverifikasi keaslian file, menandatangani token JWT, atau menyimpan kata sandi pengguna, fungsi hash kriptografi bekerja di latar belakang. Fungsi hash adalah salah satu primitif fundamental dari keamanan komputasi modern — namun perbedaan antara MD5, SHA-1, SHA-256, dan SHA-512 banyak disalahpahami, yang menyebabkan kesalahan keamanan nyata dalam sistem produksi.

Panduan ini menjelaskan apa itu fungsi hash, cara kerja setiap algoritma utama, kapan masing-masing sesuai (dan kapan berbahaya untuk digunakan), dan cara menggunakan Generator Hash BrowseryTools untuk menghitung hash secara instan di browser Anda dengan privasi penuh.

Apa Itu Fungsi Hash Kriptografi?

Fungsi hash kriptografi mengambil input dengan panjang sembarang dan menghasilkan output panjang tetap yang disebut digest atau hash. Empat properti mendefinisikan fungsi hash kriptografi yang baik:

  • Deterministik: Input yang sama selalu menghasilkan output yang sama persis. Fungsi hash tidak memiliki state internal — dengan byte yang sama, Anda selalu mendapatkan digest yang sama.
  • Satu arah (preimage resistance): Diberikan output hash, secara komputasi tidak mungkin untuk memulihkan input asli. Fungsi hash dirancang untuk mudah dihitung dalam satu arah dan efektif tidak dapat dibalik.
  • Panjang output tetap: Terlepas dari apakah inputnya satu byte atau satu gigabyte, outputnya selalu panjang yang sama. SHA-256 selalu menghasilkan digest 256-bit (32-byte).
  • Efek avalanche: Perubahan satu bit dalam input mengubah output sepenuhnya. Hash dari hello tidak terlihat seperti hash dari hello! — mereka tidak berbagi struktur yang dapat diprediksi. Ini membuat hash berguna sebagai sidik jari.

Properti kelima — collision resistance — memisahkan hash yang kuat secara kriptografi dari yang rusak: secara komputasi harus tidak mungkin menemukan dua input berbeda yang menghasilkan output yang sama. Di sinilah MD5 dan SHA-1 gagal.

MD5: Cepat, Ubiquitous, dan Rusak untuk Keamanan

MD5 (Message Digest 5) dirancang oleh Ron Rivest dan diterbitkan pada tahun 1991. Menghasilkan digest 128-bit (16-byte), biasanya direpresentasikan sebagai string heksadesimal 32 karakter seperti 5d41402abc4b2a76b9719d911017c592. Selama lebih dari satu dekade, itu adalah algoritma hash dominan untuk segala hal mulai dari checksum file hingga penyimpanan kata sandi.

Pada tahun 2004, kriptografer mendemonstrasikan serangan tabrakan praktis terhadap MD5. Pada tahun 2008, peneliti menggunakan serangan tabrakan untuk memalsukan sertifikat otoritas yang dipercaya oleh semua browser utama. MD5 kini secara definitif rusak untuk tujuan keamanan di mana collision resistance penting.

Di mana MD5 masih dapat diterima:

  • Pemeriksaan integritas file non-keamanan di mana Anda mengontrol generasi dan verifikasi (mengonfirmasi file tidak rusak dalam transit, bukan bahwa ia tidak dimodifikasi).
  • Checksum dalam sistem internal di mana aktor jahat bukan bagian dari model ancaman.
  • Kompatibilitas sistem lama di mana Anda tidak punya pilihan selain mencocokkan implementasi yang ada.
  • Kunci cache dan hash map di mana keamanan tidak relevan dan kecepatan penting.

Di mana MD5 tidak boleh pernah digunakan: sertifikat TLS, tanda tangan digital, penandatanganan kode, atau apa pun di mana penyerang mungkin mendapat manfaat dari menemukan tabrakan.

SHA-1: 160-Bit, Tidak Direkomendasikan, Masih Ada di Mana-Mana

SHA-1 (Secure Hash Algorithm 1) diterbitkan oleh NIST pada tahun 1995 dan menghasilkan digest 160-bit. Ini adalah standar untuk sertifikat TLS, tanda tangan digital, dan penandatanganan perangkat lunak sepanjang tahun 2000-an. Project Zero Google mendemonstrasikan tabrakan SHA-1 praktis pada 2017 (serangan SHAttered), menghasilkan dua file PDF berbeda dengan hash SHA-1 yang identik. Ini mengakhiri penggunaan SHA-1 dalam TLS — semua vendor browser utama berhenti menerima sertifikat SHA-1 pada tahun yang sama.

SHA-1 masih ditemukan di beberapa tempat yang perlu diperhatikan:

  • Git: Git secara historis menggunakan SHA-1 untuk mengidentifikasi setiap objek dalam repositori — commit, blob, tree, dan tag. Git sedang aktif bermigrasi ke SHA-256 (lihat di bawah), tetapi repositori Git SHA-1 tetap sangat umum. Untuk kasus penggunaan ini, collision resistance kurang penting karena penyerang memerlukan akses filesystem untuk mengeksploitasi tabrakan.
  • Sistem autentikasi lama dan implementasi HMAC yang lebih tua.
  • Beberapa perangkat lunak enterprise lama yang belum diperbarui.

Untuk pekerjaan baru: hindari SHA-1. Gunakan SHA-256 atau SHA-512.

SHA-256: Standar Saat Ini

SHA-256 adalah bagian dari keluarga SHA-2, diterbitkan oleh NIST pada tahun 2001. Menghasilkan digest 256-bit (32-byte) — dua kali lipat panjang output MD5 dan 60% lebih besar dari SHA-1. Tidak ada serangan tabrakan atau preimage praktis terhadap SHA-256 yang telah didemonstrasikan. Ini tetap menjadi standar untuk hashing yang sensitif terhadap keamanan pada tahun 2026.

SHA-256 digunakan di mana-mana:

  • Sertifikat TLS: Forum CA/Browser mewajibkan SHA-256 sebagai minimum untuk tanda tangan sertifikat. Setiap koneksi HTTPS yang Anda buat dikaitkan dengan SHA-256.
  • Penandatanganan kode: macOS, Windows Authenticode, dan manajer paket Linux (APT, RPM) menggunakan SHA-256 untuk memverifikasi integritas perangkat lunak.
  • Token JWT: Algoritma HS256 dalam JSON Web Token adalah HMAC-SHA-256. Ini adalah algoritma penandatanganan JWT paling umum dalam sistem yang di-deploy.
  • Bitcoin: Algoritma proof-of-work Bitcoin adalah double-SHA-256 (SHA-256 diterapkan dua kali).
  • Git (generasi berikutnya): Format objek SHA-256 Git (diaktifkan dengan --object-format=sha256) menggunakan SHA-256 untuk semua ID objek.
  • Verifikasi integritas file yang diterbitkan bersama unduhan perangkat lunak.

Jika Anda perlu memilih fungsi hash dan tidak memiliki batasan khusus, SHA-256 adalah pilihan default yang benar pada tahun 2026.

SHA-512: Output Lebih Besar, Terkadang Lebih Cepat

SHA-512 juga merupakan bagian dari keluarga SHA-2 dan menghasilkan digest 512-bit (64-byte). Memberikan margin keamanan yang lebih besar dari SHA-256 — 512 bit output berarti ruang serangan brute-force teoritis 2256 kali lebih besar. Dalam praktiknya, margin tambahan ini tidak relevan untuk sebagian besar aplikasi karena SHA-256 sudah tidak mungkin dipecahkan secara komputasi.

Karakteristik performa yang kontra-intuitif: SHA-512 lebih cepat dari SHA-256 pada CPU 64-bit modern saat melakukan hashing data besar. SHA-512 memproses data dalam blok 1024-bit dengan operasi kata 64-bit, sementara SHA-256 menggunakan blok 512-bit dengan operasi 32-bit. Pada prosesor 64-bit, operasi 64-bit dipetakan lebih efisien ke hardware. Ini membuat SHA-512 menjadi pilihan yang lebih baik untuk aplikasi yang melakukan hashing file besar di server 64-bit.

Gunakan SHA-512 ketika:

  • Anda melakukan hashing sejumlah besar data di hardware 64-bit dan menginginkan throughput maksimum.
  • Sistem Anda memerlukan margin keamanan tambahan untuk alasan regulasi atau kepatuhan.
  • Anda mengimplementasikan HMAC-SHA-512 (digunakan dalam beberapa implementasi JWT dengan HS512).

Tabel Perbandingan Algoritma

AlgoritmaPanjang OutputKecepatan (relatif)Status KeamananKasus Penggunaan Umum
MD5128-bit (32 karakter hex)Paling cepatRusak — tabrakan telah didemonstrasikanChecksum non-keamanan, kunci cache, sistem lama
SHA-1160-bit (40 karakter hex)CepatTidak Direkomendasikan — tabrakan praktis adaGit lama, TLS lama (tidak direkomendasikan), beberapa auth lama
SHA-256256-bit (64 karakter hex)CepatAman — standar saat iniSertifikat TLS, JWT (HS256), penandatanganan kode, Bitcoin
SHA-512512-bit (128 karakter hex)Paling cepat untuk data besar di 64-bitAman — margin keamanan lebih besarHashing file besar, JWT (HS512), aplikasi keamanan tinggi

Verifikasi Integritas File: Contoh Praktis

Salah satu penggunaan paling umum dan sah dari hash kriptografi adalah memverifikasi bahwa file yang diunduh persis seperti yang dimaksudkan penerbit — tidak rusak dalam transit dan tidak dirusak oleh pihak ketiga. Sebagian besar proyek perangkat lunak utama menerbitkan checksum SHA-256 bersama unduhan mereka.

Alur kerja terlihat seperti ini:

  • Unduh file dari sumber resmi.
  • Unduh checksum yang diterbitkan dari sumber resmi yang sama (idealnya ditandatangani dengan PGP).
  • Hitung hash SHA-256 dari file yang diunduh.
  • Bandingkan hash yang Anda hitung dengan hash yang diterbitkan karakter per karakter. Perbedaan apa pun berarti file bukan yang didistribusikan penerbit.

Generator Hash BrowseryTools mendukung hashing file — seret file ke dalamnya dan akan menghitung hash secara lokal di browser Anda tanpa mengunggah apa pun. Bandingkan hasilnya langsung dengan checksum yang diterbitkan.

Penyimpanan Kata Sandi: Satu Hal yang Tidak Dapat Dilakukan Hash dengan Aman

Peringatan Kritis: Jangan Pernah Menyimpan Kata Sandi Menggunakan Fungsi Hash Biasa

Menyimpan kata sandi sebagai hash MD5, SHA-256, atau SHA-512 — bahkan dengan salt — tidak aman dan merupakan kerentanan serius dalam sistem produksi apa pun. Inilah alasannya:

  • Fungsi hash serba guna dirancang untuk cepat. GPU modern dapat menghitung miliaran hash SHA-256 per detik. Jika database Anda dibobol, penyerang dapat melakukan brute-force setiap kata sandi umum dalam hitungan menit.
  • Rainbow table — tabel lookup yang telah dihitung sebelumnya yang memetakan hash ke input — dapat memecahkan hash kata sandi umum yang tidak di-salt dalam milidetik.
  • Bahkan dengan salt unik per pengguna, kecepatan mentah SHA-256 memudahkan serangan terhadap kata sandi yang lemah atau menengah dalam skala besar.

Gunakan fungsi hashing kata sandi sebagai gantinya: bcrypt, scrypt, atau Argon2 (pemenang Password Hashing Competition). Ini dirancang untuk sengaja lambat dan intensif memori, membuat serangan brute-force jauh lebih mahal secara komputasi. Sebagian besar framework modern menyertakannya out of the box. Argon2id adalah rekomendasi saat ini untuk sistem baru.

Bagaimana Git Menggunakan SHA-1 (dan Bermigrasi ke SHA-256)

Git menggunakan fungsi hash untuk mengidentifikasi setiap objek dalam repositori. Setiap commit, file (blob), daftar direktori (tree), dan tag disimpan dalam database objek di bawah hash SHA-1-nya. Ketika Anda menjalankan git log, string hex panjang yang Anda lihat — seperti c206f4b3a9d72bc0e53a0e1a6e4bdf8c7f9d2e51 — adalah hash SHA-1 dari objek commit.

Git memilih SHA-1 pada tahun 2005 karena kecepatan dan karena pada saat itu SHA-1 belum rusak. Peran hash dalam Git sedikit berbeda dari penggunaan keamanan tradisional: Git menggunakannya sebagai kunci penyimpanan content-addressable, bukan sebagai bukti autentikasi. Konten itu sendiri yang Anda percaya — hash hanyalah cara efisien untuk mencarinya dan mendeteksi korupsi yang tidak disengaja.

Setelah tabrakan SHA-1 SHAttered pada 2017, proyek Git mulai bekerja pada transisi ke SHA-256. Format objek baru (--object-format=sha256) tersedia di Git 2.29+ dan digunakan secara default di beberapa host repositori baru. Repositori yang ada dapat dimigrasikan, meskipun transisinya kompleks karena setiap ID objek berubah.

HMAC: Autentikasi Pesan Berbasis Hash

Hash biasa memverifikasi integritas data (data tidak berubah) tetapi bukan keaslian (data berasal dari orang yang Anda pikir). Jika penyerang dapat mencegat pesan dan menghitung ulang hash setelah memodifikasinya, hash biasa tidak memberikan perlindungan.

HMAC (Hash-based Message Authentication Code) memecahkan ini dengan memasukkan kunci rahasia ke dalam komputasi hash. Hasilnya hanya dapat diproduksi oleh seseorang yang mengetahui kunci. Memverifikasi HMAC membuktikan bahwa data utuh dan bahwa itu diproduksi oleh pihak dengan akses ke rahasia bersama.

HMAC-SHA256 ada di mana-mana:

  • Token JWT (HS256): Server menandatangani header dan payload token dengan HMAC-SHA256 menggunakan kunci rahasia. Klien tidak dapat memalsukan token valid tanpa kunci.
  • Penandatanganan permintaan API: AWS Signature Version 4 menggunakan HMAC-SHA256 untuk mengautentikasi permintaan API. Detail permintaan dan kunci penandatanganan yang diturunkan di-hash bersama sehingga keduanya tidak dapat dimodifikasi tanpa membatalkan tanda tangan.
  • Integritas cookie: Banyak framework web menggunakan HMAC untuk menandatangani cookie sesi, mencegah pengguna merusak data sesi mereka sendiri.

Cara Menggunakan Generator Hash BrowseryTools

Generator Hash mendukung hashing input teks dan upload file sepenuhnya di browser Anda. Berikut cara kerjanya:

  • Hashing teks: Tempel teks apa pun ke kolom input. Alat ini segera menghitung dan menampilkan hash untuk setiap algoritma yang didukung secara bersamaan — MD5, SHA-1, SHA-256, dan SHA-512 — sehingga Anda dapat membandingkannya secara berdampingan dan memilih yang Anda butuhkan.
  • Hashing file: Klik input file atau seret dan lepas file apa pun. File dibaca oleh File API browser Anda dan di-hash secara lokal. File besar diproses dalam potongan untuk menghindari tekanan memori. Tidak ada byte file Anda yang meninggalkan perangkat Anda.
  • Pilih algoritma: Pilih algoritma spesifik untuk fokus pada kasus penggunaan Anda. Digest hex lengkap ditampilkan dan dapat disalin dengan satu klik.
  • Unduh sebagai file: Untuk tujuan dokumentasi atau distribusi, ekspor digest hash sebagai file teks — berguna untuk menerbitkan checksum bersama rilis perangkat lunak Anda sendiri.

Privasi: Web Crypto API

Semuanya tetap di perangkat Anda. Generator Hash BrowseryTools menggunakan API bawaan browser window.crypto.subtle (Web Crypto API) untuk menghitung hash keluarga SHA. Ini adalah kriptografi native yang diimplementasikan oleh mesin C++ browser Anda — bukan matematika JavaScript. Untuk MD5, implementasi JavaScript murni berjalan secara lokal. Dalam kedua kasus, tidak ada data — tidak satu byte pun dari teks atau konten file Anda — yang pernah dikirimkan ke server BrowseryTools atau layanan pihak ketiga mana pun. Komputasi hash terjadi sepenuhnya dalam proses browser Anda.

Memilih Algoritma yang Tepat: Panduan Keputusan

  • Integritas file / checksum (non-keamanan): MD5 atau SHA-256. SHA-256 lebih disukai untuk apa pun yang menghadap publik bahkan jika model ancamannya hanya korupsi yang tidak disengaja, karena menggunakan algoritma yang rusak secara sengaja sulit dibenarkan kepada auditor.
  • TLS, penandatanganan kode, operasi sertifikat: SHA-256 (wajib — SHA-1 ditolak).
  • Penandatanganan JWT: HMAC-SHA-256 (HS256) untuk simetris, atau RS256/ES256 untuk asimetris. Jangan pernah MD5 atau SHA-1.
  • Penyimpanan kata sandi: Argon2id, bcrypt, atau scrypt. Bukan SHA-apapun.
  • Hashing file besar di server 64-bit: SHA-512 untuk throughput terbaik.
  • Margin keamanan maksimum: SHA-512 atau SHA-3 (SHA3-256, SHA3-512).
  • Kompatibilitas warisan: Apa pun yang diperlukan sistem warisan — tetapi rencanakan migrasi dari MD5 dan SHA-1.

Hasilkan hash MD5, SHA-1, SHA-256 dan SHA-512 secara instan

Tempel teks atau lepas file. Semua hashing terjadi di browser Anda menggunakan Web Crypto API. Tidak ada yang diunggah. Tidak ada yang dicatat.

Buka Generator Hash →

🛠️

Try the Tools — 100% Free, No Sign-Up

Everything runs in your browser. No uploads. No accounts. No ads.

Explore All Tools →