RevealTheme logo

Generator Hash (MD5 / SHA)

Hasilkan hash kriptografis: MD5, SHA-1, SHA-256, SHA-384, dan SHA-512. Berjalan di browser Anda melalui Web Crypto API.

Apa itu hash kriptografis dan kapan Anda membutuhkannya?

Fungsi hash kriptografis adalah algoritme deterministik yang mengonversi input apa pun (beberapa byte, berkas berukuran beberapa gigabita, atau seluruh Wikipedia bahasa Inggris) menjadi output berukuran tetap yang disebut 'digest' atau 'hash'. SHA-256 menghasilkan 256 bit (64 karakter heksadesimal); SHA-512 menghasilkan 512 bit; MD5 menghasilkan 128 bit. Empat sifat mendefinisikan hash 'kriptografis', berbeda dari yang non-kriptografis (seperti CRC32): determinisme (input sama → hash sama, selalu), efek longsoran (mengubah satu bit saja mengubah kira-kira separuh bit output), resistensi praimaji (Anda tidak dapat membalik hash untuk memulihkan input), dan resistensi tabrakan (Anda tidak dapat menemukan dua input yang menghasilkan hash yang sama). Ketika sebuah fungsi hash rusak, biasanya kedua sifat terakhir inilah yang gugur: serangan tabrakan terhadap MD5 (2004) dan SHA-1 (2017) membuatnya tidak layak untuk tujuan keamanan, meskipun keduanya masih berguna untuk pemeriksaan integritas non-adversarial, seperti checksum berkas. Gunakan SHA-256 atau SHA-512 untuk setiap pekerjaan keamanan yang baru. Alat ini menggunakan Web Crypto API browser (crypto.subtle.digest), yang dipercepat oleh perangkat keras pada perangkat modern, dan menghasilkan output yang identik byte demi byte dengan OpenSSL, modul hashlib Python, dan modul crypto Node.

Kasus penggunaan umum

  • Memverifikasi bahwa file yang diunduh cocok dengan SHA-256 yang dicantumkan penerbit (ISO Linux, rilis alat keamanan).

  • Menghasilkan pengidentifikasi berbasis konten untuk kunci cache (hash konten → URL yang stabil).

  • Membuat kunci deduplikasi untuk menyimpan file (hash cocok = file identik).

  • Membangun verifikasi tanda tangan webhook — HMAC-SHA256 dari payload dengan rahasia bersama.

  • Menghasilkan hash konten gaya Git (SHA-1 untuk pengidentifikasi tree/blob).

  • Memvalidasi integritas baris basis data dengan meng-hash kolom kunci lalu menyimpan hash-nya.

Pertanyaan yang sering diajukan

Mengapa MD5 sudah usang untuk keamanan?
Para kriptografer telah menemukan cara untuk membangun dua input berbeda yang menghasilkan MD5 yang sama. Begitu tabrakan dapat ditemukan, MD5 berhenti menjadi sinyal integritas yang andal dalam skenario adversarial (seseorang bisa menukar sebuah berkas dan menghasilkan berkas lain dengan hash yang sama). Untuk checksum non-adversarial (apakah berkas terunduh dengan benar?), MD5 masih berfungsi baik; ia hanya tidak aman untuk tanda tangan digital atau apa pun yang dapat dipengaruhi oleh penyerang.
Apakah hash dapat dibalik?
Tidak secara langsung: hash kriptografis adalah fungsi satu arah. Namun: (1) untuk input pendek atau berentropi rendah (kata sandi, frasa umum), penyerang dapat menghitung terlebih dahulu hash dari setiap input yang mungkin (tabel pelangi) dan mencari milik Anda. Itulah sebabnya hashing kata sandi menggunakan salt acak yang unik. (2) Untuk input dengan panjang sembarang dan entropi tinggi (kunci acak, isi berkas), pembalikan secara komputasi tidak memungkinkan.
Apa perbedaan antara SHA-256 dan HMAC-SHA256?
SHA-256 adalah hash sederhana: siapa pun yang memiliki input dapat menghitung hash yang sama. HMAC-SHA256 adalah hash berkunci: Anda memerlukan rahasia bersama untuk menghitungnya. Webhook menggunakan HMAC karena verifikator ingin tahu 'apakah ini dibuat oleh seseorang yang mengetahui rahasianya?', bukan sekadar 'apakah payload cocok dengan nilai yang diketahui?'. Gunakan Generator HMAC kami untuk varian berkunci.
Kapan saya sebaiknya menggunakan SHA-512 alih-alih SHA-256?
SHA-512 memiliki lebih banyak bit output (512 dibanding 256), yang secara teoretis membuat serangan tabrakan lebih sulit. Namun SHA-256 sudah aman jauh melampaui jangka waktu yang masuk akal mana pun (kekuatan efektif terhadap tabrakan sebesar 2^128). SHA-512 terkadang lebih cepat pada perangkat keras 64-bit karena operasi internalnya yang lebih lebar. Gunakan SHA-256 secara default; gunakan SHA-512 jika Anda memiliki alasan yang konkret.
Mengapa hash SHA saya berbeda dari hasil alat lain?
Tiga kemungkinan penyebab: (1) Pengodean input yang berbeda: byte yang di-hash harus cocok. UTF-8, UTF-16, atau Latin-1 menghasilkan hash yang berbeda untuk teks tampak yang sama. Alat ini mengodekan input sebagai UTF-8. (2) Baris baru di akhir: beberapa alat menambahkan baris baru dan yang lain tidak. (3) BOM (byte order mark): prefiks tersembunyi sepanjang tiga byte yang ditambahkan oleh beberapa editor pada berkas UTF-8.
Apakah aman digunakan dengan data sensitif?
Ya: penghitungan hash terjadi secara lokal di browser Anda melalui Web Crypto. Input tidak pernah meninggalkan perangkat Anda. Hash itu sendiri tidak 'sensitif' dalam arti tidak mengungkapkan input (dengan asumsi entropi yang cukup), tetapi jika Anda menghitung hash dari data berentropi rendah (seperti kata sandi tanpa salt), perlu diingat bahwa siapa pun yang melihat hash tersebut berpotensi membalikkannya melalui tabel pelangi.

Alat terkait