ABDURROZAK
ABDURROZAK.MY.ID // HASH GENERATOR

CRYPTO HASH

TOOL HASH GENERATOR LENGKAP UNTUK MURID TKJ

MD5
SHA-1
SHA-256
SHA-512
FILE HASH
HMAC
FORMAT INPUT:
OUTPUT:
PILIH ALGORITMA:

KLIK ATAU SERET FILE KE SINI

Mendukung semua jenis file - hash dihitung di browser (tidak diunggah)

BELUM ADA FILE DIPILIH
PILIH ALGORITMA:
Hash file berguna untuk memverifikasi integritas download. Bandingkan hash file yang diunduh dengan hash resmi dari sumber. Jika berbeda, file mungkin rusak atau dimodifikasi.
PILIH ALGORITMA:
Berguna untuk memverifikasi apakah dua file/teks identik. Hash yang cocok berarti data identik. Hash berbeda berarti data berbeda (atau algoritma berbeda).
PILIH ALGORITMA:
HMAC (Hash-based Message Authentication Code) menggabungkan hash dengan kunci rahasia. Digunakan untuk memverifikasi keaslian dan integritas pesan. Umum dipakai di API authentication, JWT token, dan session signing.
PILIH ALGORITMA:

MATERI LENGKAP CRYPTOGRAPHIC HASH

APA ITU HASH?

Hash function adalah fungsi matematika yang mengubah data input berukuran bebas menjadi nilai keluaran berukuran tetap (disebut hash value, digest, atau checksum).

Bayangkan hash seperti sidik jari digital - setiap file/teks memiliki sidik jari unik yang panjangnya selalu sama, tidak peduli seberapa besar file aslinya.

INPUT (bebas)              OUTPUT (tetap)
"hello"         ->  2cf24dba5fb0a30e... (SHA-256, 64 char)
"file 100GB"    ->  9f86d081884c7d6... (SHA-256, 64 char)

KARAKTERISTIK HASH KRIPTOGRAFI

  • Deterministik - Input yang sama SELALU menghasilkan hash yang sama
  • Cepat dihitung - Untuk input berapapun, hash dapat dihitung dengan cepat
  • One-way function - TIDAK BISA dibalik (tidak bisa mendapat input asli dari hash)
  • Avalanche effect - Perubahan 1 bit input mengubah SELURUH output hash secara drastis
  • Collision resistant - Sulit menemukan 2 input berbeda yang menghasilkan hash sama
  • Pre-image resistant - Dari hash, sulit menemukan input yang menghasilkan hash tersebut
  • Output tetap - Panjang output selalu sama (misal SHA-256 selalu 64 karakter hex)

PERBEDAAN HASH vs ENKRIPSI

HASH FUNCTION

  • Satu arah (one-way)
  • Tidak bisa di-decode
  • Output panjang tetap
  • Tanpa kunci
  • Untuk: integritas data, password storage

ENKRIPSI

  • Dua arah (bisa di-decode)
  • Bisa dikembalikan ke plaintext
  • Output bervariasi
  • Memerlukan kunci
  • Untuk: kerahasiaan data, komunikasi aman

ALGORITMA HASH POPULER

TIDAK AMAN MD5 (Message Digest 5)

Output: 128 bit (32 karakter hex). Ditemukan tahun 1991 oleh Ron Rivest. SUDAH TIDAK AMAN untuk keamanan karena rentang collision. Masih dipakai untuk checksum file non-kritis.

TIDAK AMAN SHA-1 (Secure Hash Algorithm 1)

Output: 160 bit (40 karakter hex). Dikeluarkan NIST tahun 1995. Tahun 2017 Google membuktikan collision (SHAttered attack). TIDAK LAGI DIREKOMENDASIKAN.

AMAN SHA-2 Family (SHA-224, SHA-256, SHA-384, SHA-512)

Dikeluarkan NIST tahun 2001. Masih AMAN dan banyak dipakai. SHA-256 (256 bit) adalah standar untuk TLS/SSL, Bitcoin, sertifikat digital.

AMAN SHA-3 (Keccak)

Standar terbaru NIST tahun 2012. Arsitektur berbeda dari SHA-2 (sponge construction). Lebih tahan terhadap serangan tertentu.

KEGUNAAN HASH DI JARINGAN (TKJ)

  • Verifikasi integritas file - Memastikan file download tidak rusak/dimodifikasi
  • Penyimpanan password - Server menyimpan hash password, bukan plaintext
  • Digital signature - Tanda tangan digital menggunakan hash pesan
  • Sertifikat digital (SSL/TLS) - Certificate fingerprint menggunakan SHA-256
  • MAC (Message Authentication Code) - Verifikasi keaslian pesan
  • Blockchain - Bitcoin menggunakan SHA-256 untuk mining
  • Version control (Git) - Commit ID adalah hash SHA-1
  • Deduplikasi data - Identifikasi data identik di storage

SALTING & PASSWORD HASHING

Salt adalah data acak yang ditambahkan ke password sebelum di-hash. Tujuannya:

  • Mencegah serangan rainbow table
  • Memastikan password sama menghasilkan hash berbeda di setiap user
  • Meningkatkan keamanan signifikan
password: "admin123"
tanpa salt:  SHA256("admin123") = 240be518fabd2724...
dengan salt: SHA256("admin123" + "x7f9k2") = 9a3c8e... (berbeda total!)

Algoritma password hashing modern: bcrypt, scrypt, Argon2.

HMAC (Hash-based Message Authentication Code)

HMAC menggabungkan hash function dengan kunci rahasia.

Kegunaan:

  • API authentication (HMAC-SHA256 di AWS, GitHub webhook)
  • JWT token signing
  • IPsec, TLS untuk verifikasi pesan
  • Mencegah pemalsuan pesan + verifikasi integritas

SERANGAN PADA HASH

  • Brute force - Mencoba semua kemungkinan input
  • Dictionary attack - Mencoba daftar password umum
  • Rainbow table - Tabel pre-computed hash (dilawan dengan salt)
  • Collision attack - Menemukan 2 input berbeda dengan hash sama
  • Length extension attack - Serangan pada hash Merkle-Damgard

TIPS PRAKTIS HASH UNTUK TKJ

1. VERIFIKASI FILE DOWNLOAD

Selalu cek hash file yang diunduh (ISO, installer, firmware router) dengan hash resmi dari vendor. Gunakan SHA-256. Jika hash berbeda, file mungkin rusak atau disisipi malware. Di Linux: sha256sum file.iso, di Windows: Get-FileHash file.iso.

2. JANGAN SIMPAN PASSWORD PLAINTEXT

Jika membuat aplikasi, JANGAN simpan password sebagai plaintext atau MD5/SHA1. Gunakan bcrypt, argon2, atau minimal SHA-256 + salt + banyak iterasi.

3. SELALU PAKAI SALT UNIQUE

Salt harus acak dan unik per user. Minimal 16 byte (128 bit). Simpan salt bersama hash di database untuk mencegah rainbow table attack.

4. PAKAI SHA-256 UNTUK JARINGAN

Untuk konfigurasi jaringan (VPN, SSL cert, IPsec), pilih SHA-256 atau lebih tinggi. Jangan pakai MD5/SHA-1 untuk sertifikat digital.

5. GUNAKAN HMAC UNTUK API

Saat membuat/menggunakan API, pakai HMAC-SHA256 untuk signing request. Jangan kirim API key di URL. Contoh: AWS Signature V4, GitHub Webhook Secret.

6. JANGAN PAKAI MD5/SHA-1

MD5 dan SHA-1 sudah BROKEN. Collision bisa dibuat dalam hitungan detik. Gunakan hanya untuk checksum non-kritis.

7. PAKAI ITERASI BANYAK

Jika pakai SHA-256 untuk password, lakukan ribuan iterasi (key stretching). Contoh: PBKDF2 dengan 100.000 iterasi. Atau pakai bcrypt/scrypt/argon2.

8. BACKUP DENGAN VERIFIKASI HASH

Saat backup data penting, simpan juga hash SHA-256 tiap file. Saat restore, verifikasi hash untuk memastikan data tidak corrupt.

9. VALIDASI INPUT

Hash BUKAN pengganti validasi input. Tetap sanitasi input user. Hash hanya untuk integritas/autentikasi, bukan mencegah SQL injection.

10. TIMING ATTACK

Saat membandingkan hash, gunakan fungsi perbandingan konstan waktu (hash_equals() di PHP, hmac.compareDigest() di JS).

11. ROUTER & FIREWALL

Password enable/SSH di router di-hash. Cisco type 5 (MD5) mudah di-crack. Gunakan type 8 (PBKDF2) atau type 9 (scrypt).

12. CEK FINGERPRINT SSL

Saat install SSL/TLS, verifikasi fingerprint sertifikat (SHA-256). Perintah: openssl x509 -in cert.pem -fingerprint -sha256 -noout

PERTANYAAN YANG SERING DITANYAKAN

APAKAH HASH BISA DI-DECODE KEMBALI?

TIDAK BISA secara langsung. Hash adalah fungsi satu arah. Namun attacker bisa mencoba brute force, dictionary attack, atau rainbow table. Itulah kenapa kita butuh salt dan algoritma lambat seperti bcrypt.

APA BEDANYA MD5, SHA-1, DAN SHA-256?
  • MD5 - 128 bit (32 hex), TIDAK AMAN
  • SHA-1 - 160 bit (40 hex), TIDAK AMAN
  • SHA-256 - 256 bit (64 hex), AMAN, standar industri
  • SHA-512 - 512 bit (128 hex), AMAN, lebih kuat

Untuk keamanan modern, minimal pakai SHA-256.

KENAPA MD5 MASIH DIPAKAI?

MD5 masih dipakai untuk keperluan non-kriptografi: checksum file (deteksi corrupt), hash table (karena cepat), legacy system. JANGAN pakai untuk password, sertifikat digital, atau tanda tangan digital.

APA ITU SALT DAN KENAPA PENTING?

Salt adalah data acak yang ditambahkan ke password sebelum di-hash. Tujuan: mencegah rainbow table attack, memastikan password sama menghasilkan hash berbeda di setiap user. Generate salt acak 16+ byte, gabungkan dengan password, hash, simpan salt + hash di database.

BAGAIMANA CARA MEMVERIFIKASI FILE DOWNLOAD?

Langkah: Download file, cari hash resmi, hitung hash file yang diunduh, bandingkan - harus SAMA PERSIS.

Perintah:

  • Windows PowerShell: Get-FileHash file.iso -Algorithm SHA256
  • Linux/Mac: sha256sum file.iso
  • Windows CMD: certutil -hashfile file.iso SHA256

Jika hash berbeda, JANGAN pakai file tersebut!

APA ITU RAINBOW TABLE?

Rainbow table adalah tabel besar berisi hash yang sudah dihitung untuk jutaan password umum. Attacker tinggal lookup untuk dapat password asli. Pencegahan: pakai salt unik per user.

APA ITU COLLISION?

Collision adalah 2 input berbeda menghasilkan hash sama. Berbahaya karena attacker bisa buat file jahat yang hash-nya sama dengan file asli. Contoh: SHAttered attack (SHA-1, 2017). Solusi: pakai SHA-256+.

ALGORITMA APA YANG HARUS DIPAKAI?
  • Password: bcrypt, Argon2id, scrypt
  • File integrity: SHA-256 atau SHA-512
  • Digital signature: SHA-256 atau SHA-3
  • HMAC/API: HMAC-SHA256
  • Checksum non-kritis: MD5 atau CRC32

Untuk TKJ, SHA-256 paling aman dan serbaguna.

APA ITU HMAC?

HMAC adalah hash + kunci rahasia. Hash biasa: siapa saja bisa hitung. HMAC: hanya yang punya kunci. Kegunaan: API auth, JWT, session signing, mencegah replay attack.

BAGAIMANA HASH DI SSL/TLS?

SSL/TLS pakai hash untuk: certificate fingerprint (SHA-256), digital signature, handshake verification, PRF (HMAC-based), record integrity. TLS 1.3 pakai SHA-256 atau SHA-384.

APAKAH TOOL INI AMAN UNTUK PASSWORD NYATA?

TIDAK DIREKOMENDASIKAN untuk password sensitif. Tool ini untuk edukasi dan testing. Semua proses di browser (tidak diupload), tapi tetap ada risiko keylogger/malware. Untuk password nyata, gunakan password manager (Bitwarden, KeePass, 1Password).

BAGAIMANA BITCOIN MINING DENGAN HASH?

Bitcoin pakai SHA-256. Miner membuat block header, lakukan double SHA-256, cari nonce sehingga hash < target difficulty. Ini Proof of Work - butuh banyak komputasi tapi mudah diverifikasi.

RIWAYAT GENERASI HASH

BELUM ADA RIWAYAT

ABDURROZAK.MY.ID // JARINGAN SOSIAL