Hashing
MD5, SHA, bcrypt
Hashing adalah pelajaran Ethical Hacking Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Ethical Hacking Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Ethical Hacking Academy mencakup 4 pelajaran total.
Apa Itu Hash?
Fungsi hash menerima input dengan ukuran apa pun dan menghasilkan output berukuran tetap yang disebut digest. Input yang sama selalu menghasilkan digest yang sama.
Yang terpenting, hashing merupakan operasi satu arah. Anda tidak dapat membalik digest secara matematis menjadi input aslinya. Inilah yang membedakan hash dari pengodean dan enkripsi.
Sifat Hash yang Baik
Fungsi hash kriptografis harus:
- Deterministik: input yang sama menghasilkan output yang sama.
- Cepat dihitung (untuk hashing umum), tetapi idealnya lambat untuk hashing kata sandi.
- Tahan terhadap preimage: berdasarkan digest, input tidak dapat ditemukan.
- Tahan terhadap collision: sulit menemukan dua input dengan digest yang sama.
- Efek avalanche: perubahan satu bit membalik sekitar setengah bit output.
MD5
MD5 menghasilkan digest 128-bit (32 karakter heksadesimal). MD5 cepat dan dahulu umum digunakan, tetapi telah rusak secara kriptografis: serangan collision yang praktis telah tersedia.
Jangan pernah menggunakan MD5 untuk keamanan. Anda masih akan menemukannya pada checksum file dan sistem lama, sehingga MD5 sering menjadi sasaran selama penilaian.
echo -n 'password' | md5sum
# 5f4dcc3b5aa765d61d8327deb882cf99Keluarga SHA
Keluarga SHA (Secure Hash Algorithm) lebih kuat:
- SHA-1: 160-bit. Kini dianggap rusak (serangan collision 'SHADOW HAMMER' / SHAttered). Hindari.
- SHA-2: mencakup SHA-256 dan SHA-512. Banyak digunakan dan saat ini aman.
- SHA-3: rancangan yang lebih baru berdasarkan Keccak, sebagai alternatif untuk SHA-2.
echo -n 'password' | sha256sum
# 5e884898da28047151d0e56f8dc629...Hashing Bukan Enkripsi
Enkripsi dapat dibalik dengan kunci. Hashing sama sekali tidak dapat dibalik. Inilah alasan hashing digunakan untuk menyimpan kata sandi: server tidak pernah memerlukan kata sandi asli.
Saat Anda masuk, server melakukan hashing terhadap teks yang Anda ketik lalu membandingkannya dengan hash yang tersimpan. Jika cocok, Anda terautentikasi. Kata sandi dalam bentuk teks biasa tidak pernah disimpan.
Masalah: Tabel Pelangi
Karena hashing bersifat deterministik, intisari dari 'password' sama untuk setiap pengguna. Penyerang menghitung sebelumnya tabel pencarian berukuran sangat besar yang memetakan intisari ke teks asli, yang disebut tabel pelangi.
Jika dua pengguna menggunakan kata sandi yang sama, hash yang tersimpan akan identik sehingga fakta tersebut dapat diketahui. Hash cepat biasa seperti MD5 atau SHA-256 saja tidak sesuai untuk kata sandi.
Pemberian Garam
Garam adalah nilai acak unik yang ditambahkan ke setiap kata sandi sebelum hashing. Dengan demikian:
- Kata sandi yang identik menghasilkan hash yang berbeda.
- Tabel pelangi yang telah dihitung sebelumnya menjadi tidak berguna.
Garam disimpan bersama hash dan tidak bersifat rahasia. Fungsinya adalah membuat setiap hash unik sehingga penyerang harus membobolnya satu per satu.
stored = salt + hash(salt + password)
# salt is random and unique per userbcrypt: Dibuat untuk Kata Sandi
bcrypt dirancang khusus untuk menyimpan kata sandi. Algoritma ini sengaja dibuat lambat dan memiliki faktor biaya yang dapat dikonfigurasi (faktor kerja), sehingga menjadi semakin lambat seiring peningkatan perangkat keras.
Hash bcrypt menyertakan algoritma, biaya, dan garam dalam satu string. Kelambatan ini merupakan fitur: kecepatannya membatasi seberapa cepat penyerang dapat menebak.
$2b$12$R9h/cIPz0gi.URNNX3kh2OPST9/PgBkqquzi.Ss7KIUgO2t0jWMUW
# $2b$ = bcrypt, 12 = cost factor, then salt + hashHash Lambat Lainnya
Selain bcrypt, pilihan hashing kata sandi modern meliputi:
- scrypt: membutuhkan banyak memori dan tahan terhadap serangan GPU serta ASIC.
- Argon2: pemenang Kompetisi Hashing Kata Sandi, dapat disesuaikan untuk waktu dan memori. Ini adalah pilihan modern yang direkomendasikan.
- PBKDF2: menerapkan hash cepat selama ribuan iterasi; masih dapat diterima, tetapi lebih lemah daripada pilihan di atas.
HMAC dan Integritas
Hash juga digunakan untuk integritas, bukan hanya kata sandi. HMAC (Kode Autentikasi Pesan Berbasis Hash) menggabungkan hash dengan kunci rahasia untuk memverifikasi integritas dan keaslian pesan.
Checksum file (sering kali SHA-256) memungkinkan Anda memverifikasi bahwa suatu unduhan tidak diutak-atik. Sebagai peretas, checksum yang tidak cocok dapat mengungkapkan file yang telah dimodifikasi atau berbahaya.
Hash di Dunia Nyata
Sebagai peretas, Anda akan terus menemukan hash:
- /etc/shadow di Linux menyimpan hash kata sandi yang diberi garam, dengan awalan seperti
$6$(SHA-512) atau$2b$(bcrypt). - Windows menyimpan hash NTLM dalam basis data SAM.
- Aplikasi web menyimpan kata sandi yang telah di-hash dalam tabel penggunanya.
Mengenali awalan tersebut akan langsung memberi tahu algoritma yang digunakan dan strategi pembobolan Anda.
$6$rounds=5000$salt$hash # SHA-512 crypt
$2b$12$saltandhash... # bcryptPemeriksaan Singkat
Pilih pilihan yang paling aman untuk menyimpan kata sandi pengguna.
Rangkuman
Sekarang Anda memahami hashing:
- Hashing adalah transformasi satu arah yang deterministik dan berukuran tetap, berbeda dari pengodean dan enkripsi.
- MD5 dan SHA-1 telah tidak aman; gunakan SHA-256 untuk integritas umum.
- Untuk kata sandi, gunakan algoritma yang lambat dan diberi garam: bcrypt, scrypt, atau Argon2.
- Garam menggagalkan tabel pelangi; HMAC menambahkan integritas berbasis kunci.
Selanjutnya, Anda akan mempelajari enkripsi simetris dan asimetris dengan AES dan RSA.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Hashing” gratis?
Ya — teks lengkap “Hashing” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Ethical Hacking Academy, upgrade ke CoddyKit PRO. Kursus Ethical Hacking Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Hashing”?
MD5, SHA, bcrypt Kamu berlatih Ethical Hacking Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Ethical Hacking Academy?
Tidak diperlukan pengalaman sebelumnya. Ethical Hacking Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Hashing” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Ethical Hacking Academy ini?
Ya. Setiap pelajaran Ethical Hacking Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.