Generator Hash Gratis

Hasilkan hash MD5, SHA-1, SHA-256, SHA-384, SHA-512.

Tidak ada data yang meninggalkan perangkat Anda

Hasil

Tentang Fungsi Hash

Fungsi hash kriptografis mengambil input dengan ukuran apa pun dan menghasilkan output ukuran tetap yang disebut hash, digest, atau sidik jari. Input yang sama selalu menghasilkan hash yang sama; bahkan perubahan satu-bit dalam input menghasilkan hash yang sangat berbeda ("efek longsoran"); dan fungsi ini secara komputasi tidak layak untuk dibalik: diberikan hash, Anda tidak dapat secara praktis menemukan input yang menghasilkannya. Tiga properti resistensi membuat fungsi hash menjadi "kriptografis": resistensi preimage (diberikan hash h, tidak layak menemukan input m apa pun sehingga hash(m) = h), resistensi second-preimage (diberikan m1, tidak layak menemukan m2 berbeda dengan hash yang sama), dan resistensi tabrakan (tidak layak menemukan dua input berbeda dengan hash yang sama). Hash yang kehilangan resistensi tabrakan masih dapat aman untuk beberapa penggunaan (integritas file) tetapi tidak aman untuk yang lain (tanda tangan digital). MD5 dan SHA-1 berada tepat di kategori itu: collision-broken tetapi resisten-preimage.

Sejarah Singkat MD5, SHA-1, SHA-2, dan SHA-3

MD2 / MD4 / MD5 adalah karya Ron Rivest di MIT dan RSA Data Security. MD2 diterbitkan pada 1989; MD4 pada 1990; MD5 diterbitkan pada 1991 dan distandarisasi sebagai RFC 1321 pada April 1992. MD5 adalah hash dominan selama satu dekade: default untuk checksum download, penyimpanan kata sandi, deduplikasi file, dan sistem yang dapat dialamatkan-konten. Peringatan pertama muncul pada 1995 ketika Hans Dobbertin menerbitkan serangan tabrakan full-round pada MD4, pendahulu MD5; tabrakan MD5-penuh praktis pertama tiba pada Agustus 2004 ketika Wang dan Yu mengumumkan dua pesan 128-byte yang bertabrakan; Vlastimil Klima mempercepat pencarian tabrakan MD5 dari jam ke detik pada perangkat keras komoditas pada 2006. Marc Stevens, bekerja dengan peneliti dari TU Eindhoven dan EPFL, mendemonstrasikan tabrakan MD5 chosen-prefix pada 25C3 di Desember 2008, dengan menghasilkan sertifikat CA RapidSSL palsu yang ditandatangani dengan MD5. Pada saat malware Flame pada 2012: yang menggunakan tabrakan MD5 untuk memalsukan sertifikat Microsoft Update: MD5 sudah benar-benar rusak untuk penggunaan apa pun yang sensitif keamanan.

SHA ("Secure Hash Algorithm") adalah keluarga dari U.S. National Security Agency. SHA-0 diterbitkan sebagai FIPS 180 pada Mei 1993 dan ditarik dalam waktu satu tahun karena cacat desain yang tidak ditentukan. SHA-1 mengikuti sebagai FIPS 180-1 pada April 1995, dengan perubahan satu-bit ke jadwal pesan yang tidak pernah dijelaskan secara publik oleh NSA. SHA-1 menjadi hash default akhir 1990-an dan 2000-an: digunakan oleh Git untuk hash commit, oleh sertifikat SSL/TLS, oleh hampir setiap skema tanda tangan. Serangan tabrakan teoretis pertama datang pada 2005 (Wang, Yin, Yu); tabrakan freestart pada 2015 (Stevens, Karpman, Peyrin); dan tabrakan SHA-1 penuh pertama dirilis pada 23 Februari 2017 sebagai "SHAttered" (Stevens, Bursztein, Karpman, Albertini, Markov), yang menghasilkan dua file PDF berbeda dengan hash SHA-1 yang sama. Pada Januari 2020 serangan chosen-prefix "SHA-1 is a Shambles" (Leurent dan Peyrin, total biaya kira-kira USD 45.000 sewa GPU) membuat pemalsuan tingkat sertifikat terjangkau, mempercepat transisi SHA-256 yang sudah mulai direncanakan oleh proyek Git pada 2018. SHA-1 sekarang secara resmi dideprecate oleh NIST untuk tanda tangan digital dan sertifikat.

SHA-2 adalah keluarga yang menggantikan SHA-1: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, dan SHA-512/256, diterbitkan sebagai FIPS 180-2 pada Agustus 2002. SHA-2 adalah desain defensif: ukuran output yang lebih besar, lebih banyak putaran, status internal yang lebih besar: dan dua puluh tiga tahun kemudian itu tetap tidak rusak. SHA-256 adalah default modern untuk tanda tangan digital, sertifikat, JWT, hash blok Bitcoin, penyimpanan yang dapat dialamatkan-konten, dan sebagian besar verifikasi integritas file. SHA-3 adalah desain yang fundamental berbeda: konstruksi sponge Keccak oleh Bertoni, Daemen, Peeters, dan Van Assche: dipilih melalui kompetisi NIST lima tahun yang dibuka pada 2007 dan dimenangkan oleh Keccak pada Oktober 2012; diterbitkan sebagai FIPS 202 pada Agustus 2015. SHA-3 bukan pengganti SHA-2 (SHA-2 masih aman); itu adalah alternatif pertahanan-secara-mendalam dengan struktur internal yang sepenuhnya berbeda, sehingga pemecahan kriptanalitik SHA-2 di masa depan tidak akan selalu memengaruhi SHA-3. Alat ini memancarkan SHA-1, SHA-256, SHA-384, dan SHA-512 (set yang didukung Web Crypto API) plus MD5 (melalui implementasi JavaScript, karena Web Crypto API sengaja menghilangkan MD5).

Perbandingan Algoritma

AlgoritmaKeluaranKeamanan
MD5128-bit (32 hex chars)Rusak · bukan untuk keamanan
SHA-1160-bit (40 hex chars)Lemah · tidak digunakan lagi
SHA-256256-bit (64 hex chars)Kuat · direkomendasikan
SHA-384384-bit (96 hex chars)Kuat
SHA-512512-bit (128 hex chars)Kuat

Di Mana Hash Kriptografis Muncul

Pemecahan Tabrakan vs Pemecahan Preimage: Mengapa MD5 Masih Digunakan

Kebingungan umum: jika MD5 "rusak," mengapa md5sum masih dikirim di setiap distro Linux? Jawabannya adalah perbedaan antara resistensi tabrakan (rusak di MD5) dan resistensi preimage (masih utuh di MD5). Serangan tabrakan memungkinkan penyerang membangun dua input berbeda dengan hash yang sama; ini penting untuk tanda tangan digital (di mana penyerang dapat membuat pasangan yang bertabrakan, mendapatkan satu yang ditandatangani, dan mengganti yang lain) dan untuk aplikasi apa pun di mana fungsi hash seharusnya mengikat input tertentu. Sebaliknya, serangan preimage akan memungkinkan penyerang memulihkan input asli dari hash: ini yang akan benar-benar merusak checksum download, hash kata sandi, atau pengidentifikasi yang dialamatkan-konten. Resistensi preimage untuk MD5 belum rusak; serangan preimage terbaik yang diterbitkan tetap dekat dengan batas teoretis 2128, secara komputasi tidak layak pada perangkat keras yang ada atau yang diharapkan. Jadi MD5 (dan SHA-1) tetap sah untuk: verifikasi integritas file ketika Anda mempercayai sumber hash yang diterbitkan (penyerang yang dapat mengganti file mungkin juga dapat mengganti hash, sehingga model ancaman adalah "korupsi tidak disengaja" bukan "perusakan yang disengaja"); kunci cache dan deduplikasi di mana Anda mengontrol kedua ujung; konstruksi HMAC (HMAC-MD5 masih aman karena struktur HMAC kuat terhadap kelemahan tabrakan MD5, meskipun HMAC-SHA-256 lebih disukai untuk kode baru). Di mana MD5 harus diganti: tanda tangan digital, hash sertifikat, di mana pun penyerang dapat membuat input.

Web Crypto API: dan Penghilangan MD5 yang Disengaja

Browser modern mengekspos hashing melalui crypto.subtle.digest(algorithm, data), fungsi asinkron yang mengembalikan hash sebagai ArrayBuffer. Algoritma yang didukung: SHA-1, SHA-256, SHA-384, SHA-512. Perhatikan apa yang tidak ada dalam daftar itu: MD5 sengaja dihilangkan. W3C Web Crypto Working Group membuat keputusan eksplisit untuk meninggalkan MD5, dengan alasan bahwa penggunaan MD5 apa pun di browser adalah legacy (lebih baik ditangani dengan polyfill) atau salah (dan tidak boleh dibuat mudah). Dukungan MD5 alat ini berasal dari implementasi JavaScript kecil (~10 KB) yang dibundel di halaman; semua yang lain (SHA-1, SHA-256, SHA-384, SHA-512, plus semua varian HMAC) merute melalui Web Crypto untuk pemrosesan kecepatan-native. Web Crypto API hanya tersedia dalam konteks aman (HTTPS atau localhost): membuka alat ini melalui HTTP biasa akan secara diam-diam menonaktifkan hashing SHA.

Format Output: Hex, Base64, Base32

Hash adalah biner secara alami: hash 256-bit adalah 32 byte data opaque. Untuk menampilkan atau mentransportasikannya, mereka dikodekan sebagai teks. Hex (Base16) adalah pengkodean paling umum: setiap byte menjadi dua karakter hex, sehingga output SHA-256 adalah 64 karakter hex. Universal, dapat dibaca, menggandakan ukuran. Base64 mengemas byte lebih padat (3 byte → 4 karakter); SHA-256 dalam Base64 adalah 44 karakter (dengan padding) atau 43 (tanpa). Digunakan dalam JWT (tanda tangan dikodekan Base64URL), dalam atribut SRI integrity, dan di mana pun kekompakan penting. Base32 (RFC 4648) menggunakan 32 karakter yang mengecualikan yang ambigu secara visual (tidak ada perbedaan 0/O, 1/I/L); digunakan dalam kunci rahasia TOTP, ULID, dan alamat onion. Alat ini memancarkan hex secara default: format universal yang dipahami setiap alat lain.

HMAC: Hashing Berkunci untuk Autentikasi

HMAC (Hash-based Message Authentication Code) adalah konstruksi yang didefinisikan dalam RFC 2104 (Krawczyk, Bellare, Canetti, Februari 1997) yang mengubah fungsi hash kriptografis apa pun menjadi kode autentikasi berkunci. Konstruksinya adalah HMAC(K, m) = H((K' XOR opad) || H((K' XOR ipad) || m)), di mana K' adalah kunci yang diturunkan dari rahasia K, dan opad/ipad adalah pad XOR tetap. Strukturnya secara terbukti aman selama hash yang mendasarinya, dan terutama tetap aman bahkan ketika hash yang mendasarinya memiliki resistensi tabrakan yang lemah (itulah mengapa HMAC-MD5 masih dianggap aman: dan mengapa HMAC-SHA1 baik di TLS bahkan setelah pemecahan tabrakan SHA-1). HMAC memiliki tiga penggunaan utama: penandatanganan permintaan API (AWS Signature v4, webhook GitHub, webhook Stripe), di mana penerima memverifikasi permintaan berasal dari pemegang rahasia; integritas JWT (HS256 = HMAC-SHA-256); dan derivasi kunci berbasis-kata-sandi (PBKDF2 menggunakan HMAC secara internal). Mode HMAC alat ini mengambil kunci rahasia dan menghasilkan HMAC dari input di bawah kunci tersebut.

Lingkup Jujur: Untuk Apa Alat Ini dan Bukan Untuk Apa

Alat ini menghitung hash kriptografis mentah dari teks atau file input. Berguna untuk: memverifikasi unduhan file terhadap checksum yang diterbitkan, menghasilkan pengidentifikasi yang dapat dialamatkan-konten, menghitung nilai HMAC untuk debugging API, membandingkan integritas dua salinan file, dan mempelajari hash apa untuk input tertentu. Tidak berguna untuk: penyimpanan kata sandi (gunakan fungsi password-hashing nyata seperti Argon2id, scrypt, atau bcrypt dengan salt yang tepat dan faktor kerja); membalik hash (yang merupakan seluruh tujuan fungsi hash dan tidak mungkin berdasarkan desain); atau menghasilkan hash SHA-3 / Keccak (alat ini saat ini memancarkan SHA-1, SHA-256, SHA-384, dan SHA-512 dari keluarga SHA-2, plus MD5: SHA-3 ada di daftar fitur masa depan); menghasilkan hash BLAKE2 atau BLAKE3. Untuk BLAKE3 (hash throughput-tinggi modern untuk penyimpanan yang dapat dialamatkan-konten), gunakan CLI khusus; untuk penyimpanan kata sandi, gunakan pustaka bcrypt/scrypt/Argon2id aplikasi Anda secara langsung.

Privasi: Mengapa Hanya-Browser Penting di Sini

Meng-hash file di server memerlukan upload file. Untuk verifikasi unduhan biasa ini moot: Anda sudah mempercayai sumbernya. Untuk meng-hash dokumen internal, ID yang dipindai, screenshot UI yang sedang dikerjakan, atau file apa pun yang tidak ingin Anda salin ke hard drive orang asing, hashing sisi-server adalah kebocoran. Alat ini membaca file langsung di browser Anda menggunakan File API dan meng-hash secara lokal: tidak ada yang meninggalkan perangkat Anda. Verifikasi dengan membuka tab Network DevTools saat Anda mengklik Hash, atau bawa halaman offline (mode pesawat) setelah dimuat dan konfirmasi alat masih berfungsi. Web Crypto API memerlukan HTTPS tetapi tidak memerlukan akses jaringan saat runtime.

Pertanyaan yang Sering Diajukan

Untuk apa MD5 digunakan jika sudah rusak?

MD5 masih banyak digunakan untuk keperluan non-keamanan: pemeriksaan integritas file (memverifikasi unduhan), deduplikasi, kunci cache, dan checksum. MD5 tidak boleh digunakan untuk hashing kata sandi atau tanda tangan digital.

Dapatkah saya membalikkan hash untuk mendapatkan teks asli?

Tidak. Fungsi hash dirancang satu arah. Namun, penyerang menggunakan tabel yang telah dihitung sebelumnya (rainbow tables) untuk mencari hash umum. Itulah sebabnya kata sandi harus di-hash dengan fungsi hash yang di-salt dan lambat seperti bcrypt, bukan SHA-256 mentah.

Apakah file saya diunggah saat saya meng-hash-nya?

Tidak. File dibaca langsung di browser Anda menggunakan File API dan di-hash secara lokal menggunakan Web Crypto API (untuk SHA) atau implementasi JavaScript murni (untuk MD5). Tidak ada yang dikirim ke server mana pun.

Apa perbedaan antara SHA-256 dan SHA-3?

SHA-256 adalah bagian dari keluarga SHA-2 (FIPS 180-2, Agustus 2002): konstruksi Merkle-Damgård, dirancang oleh NSA. SHA-3 (FIPS 202, Agustus 2015) adalah keluarga Keccak: konstruksi sponge, dirancang oleh Bertoni, Daemen, Peeters, dan Van Assche, dipilih melalui kompetisi NIST publik. SHA-3 bukan pengganti SHA-2 (SHA-2 masih aman); itu adalah alternatif pertahanan-secara-mendalam dengan struktur internal yang fundamental berbeda, sehingga pemecahan SHA-2 hipotetis di masa depan tidak akan selalu memengaruhi SHA-3. Untuk aplikasi baru pada 2026, SHA-256 masih merupakan default yang tepat; SHA-3 semakin banyak digunakan dalam Ethereum dan skema post-quantum. Alat ini saat ini mendukung SHA-2 (SHA-1 / 256 / 384 / 512); SHA-3 ada di daftar fitur masa depan.

Apa itu HMAC dan kapan saya membutuhkannya?

HMAC (Hash-based Message Authentication Code, RFC 2104, 1997) adalah konstruksi keyed-hash yang membuktikan pesan dibuat oleh seseorang yang mengetahui rahasia bersama. Anda membutuhkannya setiap kali Anda memverifikasi bahwa permintaan datang dari pihak yang tepat: memverifikasi tanda tangan webhook GitHub (rahasia adalah kunci penandatanganan webhook), tanda tangan webhook Stripe, tanda tangan permintaan API AWS (Signature v4 adalah HMAC-SHA-256), atau tanda tangan JWT (HS256 = HMAC-SHA-256). HMAC tetap aman bahkan ketika hash yang mendasarinya memiliki resistensi tabrakan yang lemah, itulah mengapa HMAC-MD5 masih dianggap aman: meskipun HMAC-SHA-256 adalah default modern untuk kode baru.

Apakah file saya diunggah ketika saya meng-hash-nya?

Tidak. File dibaca langsung di browser Anda menggunakan File API dan di-hash secara lokal: melalui Web Crypto API untuk algoritma keluarga SHA, melalui implementasi JavaScript kecil untuk MD5. Tidak ada yang melintasi jaringan: verifikasi di tab Network DevTools saat Anda menghitung, atau bawa halaman offline setelah dimuat. Aman untuk meng-hash dokumen internal, ID yang dipindai, screenshot UI yang sedang dikerjakan, atau file apa pun yang tidak ingin Anda salin ke hard drive orang asing.

Alat Terkait