🌐 ID

🔐 Generator Hash

Ubah teks ke berbagai algoritma hash. Digunakan untuk verifikasi integritas file, hashing kata sandi, dan validasi data.

Pilih file untuk membuat hash dari isi file
PANDUAN

Pelajari lebih lanjut

01

1. Apa Itu Fungsi Hash

Fungsi hash adalah fungsi satu arah yang mengubah data berukuran arbitrer menjadi nilai berukuran tetap. Fungsi ini memiliki efek avalanche, di mana sedikit perubahan pada input menghasilkan hash yang sama sekali berbeda, dan input yang sama selalu menghasilkan output yang sama. MD5 menghasilkan 128-bit, SHA-1 menghasilkan 160-bit, dan SHA-256 menghasilkan hash 256-bit. Karena hash adalah fungsi satu arah yang tidak dapat didekripsi, hash ideal untuk memverifikasi integritas sambil menyembunyikan data asli. Banyak digunakan dalam verifikasi unduhan file, penyimpanan kata sandi, blockchain, tanda tangan digital, dan lainnya.

02

2. Perbandingan Algoritma MD5 vs SHA

MD5 adalah hash 128-bit yang dikembangkan pada 1991, sangat cepat tetapi rentan terhadap serangan collision. Kerentanan keamanan serius yang ditemukan pada 2004 membuatnya tidak layak untuk tujuan kriptografi, dan hanya digunakan untuk checksum file. SHA-1 adalah hash 160-bit yang lebih aman daripada MD5, tetapi pengumuman Google pada 2017 tentang kasus collision yang nyata membuatnya dihentikan penggunaannya. SHA-256 berasal dari keluarga SHA-2, menghasilkan hash 256-bit dan saat ini menjadi standar yang paling banyak digunakan. Bitcoin juga menggunakan SHA-256. SHA-512 memberikan keamanan lebih tinggi dengan 512 bit tetapi lebih lambat. Sistem baru sebaiknya menggunakan SHA-256 atau yang lebih tinggi.

03

3. Keamanan Hash dan Kerentanannya

Fungsi hash memiliki tiga syarat keamanan utama. Pertama, preimage resistance: sulit menemukan data asli dari nilai hash. Kedua, second preimage resistance: sulit menemukan input lain yang menghasilkan hash yang sama. Ketiga, collision resistance: sulit menemukan dua input berbeda yang menghasilkan hash yang sama. MD5 dan SHA-1 memiliki collision resistance yang sudah rusak, sehingga penyerang dapat sengaja membuat hash yang sama. Serangan rainbow table menggunakan tabel hash yang sudah dihitung sebelumnya untuk melacak balik, tetapi penambahan salt dapat melindunginya.

04

4. Verifikasi Integritas File

Hash file adalah cara paling efektif untuk memastikan file yang diunduh belum diubah. Situs distribusi perangkat lunak menyediakan nilai hash resmi bersama file. Pengguna menghitung hash file setelah mengunduh lalu membandingkannya dengan nilai resmi. Bahkan perbedaan satu bit saja menghasilkan hash yang sama sekali berbeda, sehingga manipulasi langsung terdeteksi. Sangat penting untuk citra ISO Linux, perangkat lunak open-source, transaksi blockchain, dan lainnya. Git juga menghasilkan hash SHA-1 untuk setiap commit guna memastikan integritas kode. Hash dapat mendeteksi kerusakan akibat kesalahan jaringan saat transfer file besar.

05

5. Praktik Terbaik Hashing Kata Sandi

Jangan pernah menyimpan kata sandi dalam teks biasa di database. Kata sandi harus diubah menjadi hash, tetapi MD5 atau SHA-256 sederhana tidak memadai. Keduanya rentan terhadap serangan rainbow table. Anda harus menambahkan salt. Salt adalah string acak yang ditambahkan ke kata sandi, sehingga kata sandi yang sama menghasilkan hash yang berbeda. Selain itu, gunakan fungsi hash lambat seperti bcrypt, scrypt, atau Argon2. Fungsi ini sengaja memperlambat komputasi untuk menyulitkan serangan brute force. OWASP merekomendasikan Argon2 sebagai prioritas utama untuk hashing kata sandi.

06

6. Rainbow Table dan Salt

Rainbow table adalah basis data besar berisi nilai hash yang telah dihitung sebelumnya. Tabel ini menyimpan hash dari jutaan kata sandi umum terlebih dahulu dan mencocokkannya dengan hash yang dicuri untuk menemukan kata sandi asli. Misalnya, MD5 dari "password123" selalu "482c811da5d5b4bc6d497ffa98491e38", sehingga dapat langsung ditemukan di tabel. Salt melindungi dari ini. Menambahkan string acak unik untuk setiap pengguna membuat kata sandi yang sama menghasilkan hash yang berbeda. Hashing "password123" + "x8k2m9" menghasilkan nilai yang tidak ada di rainbow table. Salt dapat disimpan dalam teks biasa di DB, dan setiap kata sandi harus memakai salt yang berbeda agar efektif.

Pertanyaan umum

Apakah teks atau file saya dikirim ke server?
Tidak. Semua hashing dilakukan di sisi klien di browser Anda dengan JavaScript, tidak ada yang diunggah. Teks dan file Anda tetap di perangkat Anda.
Apakah saya bisa menggunakan alat ini untuk hashing kata sandi untuk penyimpanan?
Kami tidak menyarankannya. MD5 dan SHA-256 adalah hash cepat yang rentan terhadap serangan brute force, jadi kata sandi sebaiknya menggunakan fungsi lambat khusus seperti bcrypt, scrypt, atau Argon2. Alat ini paling cocok untuk pemeriksaan integritas file dan checksum data.
Algoritma mana yang harus saya pilih?
Gunakan SHA-256 atau yang lebih tinggi untuk hal baru apa pun. MD5 dan SHA-1 memiliki collision resistance yang rusak dan tidak cocok untuk tujuan keamanan - simpan hanya untuk kompatibilitas dengan sistem lama.
Kapan saya harus menggunakan opsi HMAC?
HMAC (keyed hashing) memverifikasi bahwa pesan berasal dari pengirim yang memegang kunci rahasia tertentu. Gunakan saat Anda membutuhkan autentikasi sekaligus integritas, seperti menandatangani permintaan API atau memverifikasi webhook.
Mengapa input yang sama kadang menghasilkan hash yang berbeda?
Untuk algoritma dan input yang sama, hash selalu identik kecuali Anda menggunakan kunci HMAC atau opsi huruf besar. Jika hasil Anda berbeda, periksa perbedaan input yang halus seperti spasi tambahan atau jeda baris.