Baris digest menggunakan bentuk “ALGORITMA hash” sehingga dapat disalin ke catatan rilis atau manifes unduhan.
Generator Hash — setiap algoritma dijelaskan dari nol
Dalam satu kalimat: fungsi hash kriptografis adalah blender satu arah — ia menerima sejumlah byte apa pun dan memadatkannya menjadi sidik jari panjang tetap sedemikian rupa sehingga masukan yang sama selalu menghasilkan sidik jari yang sama, namun sidik jari itu tidak memberi tahu cara membangun kembali masukannya. Halaman ini menjalankan sebelas di antaranya sepenuhnya di dalam tab browser.
Setiap algoritma di bawah dijelaskan dengan empat langkah yang sama: apa itu dengan kata-kata biasa, intuisi cara kerjanya tanpa rumus, apakah masih layak digunakan hari ini, dan kesalahan yang paling sering dibuat orang dengannya.
MD5
Apa itu. MD5 (1992) memadatkan masukan apa pun menjadi sidik jari 128-bit (32 karakter hex). Ia dirancang agar cepat di komputer tahun 1990-an, dan memang begitu — itulah sebabnya ia masih ada di mana-mana: halaman unduhan perangkat lunak, cache deduplikasi berkas, kunci basis data lama.
Cara kerjanya, secara intuitif. Masukan dipotong menjadi potongan 64-byte. Setiap potongan diaduk ke dalam status bergulir 128-bit sebanyak empat kali (empat putaran pencampuran yang sedikit berbeda), dan setelah potongan terakhir statusnya dicetak sebagai digest. Pengadukan dibangun dari penjumlahan, rotasi, dan pencarian tabel — murah dulu, murah sekarang.
Apakah sebaiknya digunakan? Untuk checksum ketika tidak ada yang berusaha menipu Anda — mendeteksi unduhan yang rusak, menemukan berkas duplikat — ya, ia tetap melaporkan kerusakan dengan sempurna. Untuk apa pun yang bersifat adversarial, tidak: sejak 2004 para peneliti dapat membuat dua berkas berbeda dengan MD5 yang sama dalam hitungan detik, dan pemalsuan sertifikat sungguhan yang memanfaatkan tabrakan MD5 terjadi pada 2008. Perlakukan ia sebagai nomor seri, bukan kunci.
Kesalahan umum. Menggunakan MD5 untuk kata sandi (terlalu cepat — lihat Generator Hash Kata Sandi untuk mengetahui apa yang seharusnya digunakan di sana); mempercayai berkas karena “MD5-nya cocok” padahal penyerang juga menerbitkan MD5-nya; dan menempelkan seluruh baris MD5 (file) = hash alih-alih hanya hash-nya — kotak Verifikasi di atas menerima keduanya.
SHA-1
Apa itu. SHA-1 (1995, NSA) menghasilkan digest 160-bit (40 karakter hex). Selama dua dekade ia adalah hash integritas bawaan Git, sertifikat TLS, dan tanda tangan PGP.
Cara kerjanya, secara intuitif. Resep keluarga yang sama dengan MD5 tetapi dengan status 160-bit, 80 putaran pencampuran per potongan 64-byte, dan rangkaian operasi yang lebih luas. Putaran tambahan dimaksudkan untuk membuat blender lebih sulit direkayasa balik.
Apakah sebaiknya digunakan? Tidak, untuk apa pun yang bersifat adversarial. Pematahan teoretisnya menjadi praktis pada 2017 ketika Google menghasilkan dua PDF berbeda dengan nilai SHA-1 yang identik (serangan SHAttered, sekitar 6500 tahun-CPU). Git masih menyimpan objek di bawah SHA-1 tetapi hanya memperlakukannya sebagai pengenal, dan sejak itu telah menambahkan deteksi tabrakan. Untuk pekerjaan baru gunakan SHA-256 atau SHA-3.
Kesalahan umum. Percaya bahwa 160 bit “masih cukup panjang” — pematahannya menyangkut struktur internal, bukan brute force; dan mencampuradukkan RIPEMD-160 dengan SHA-1 karena keduanya sama-sama 40 karakter hex (kotak identifikasi di atas membedakannya).
SHA-2: SHA-256, SHA-384 dan SHA-512
Apa itu. Keluarga SHA-2 (2001, NSA) adalah kuda pekerja pemeriksaan integritas modern. SHA-256 memberikan 256 bit (64 karakter hex), SHA-512 memberikan 512 bit, dan SHA-384 adalah SHA-512 dengan hasil dipotong menjadi 384 bit — berguna ketika sebuah protokol mewajibkan tag yang lebih pendek.
Cara kerjanya, secara intuitif. Potongan 64-byte (atau 128-byte untuk varian 512-bit) dilipat ke dalam status 8-kata melalui 64 (atau 80) putaran langkah tambah-rotasi-campur. Berbeda dengan MD5, jadwalnya terlebih dahulu memanjangkan setiap potongan menjadi buffer yang diperluas, dan itulah yang mengalahkan gaya serangan yang memecahkan MD5 dan SHA-1. Satu keunikan yang patut diketahui: pada CPU 64-bit SHA-512 lebih cepat daripada SHA-256, karena ia memproses dua kali data per putaran dengan aritmetika 64-bit.
Apakah sebaiknya digunakan? Ya — SHA-256 adalah jawaban default untuk checksum berkas, penandatanganan kode, dan sidik jari sertifikat saat ini, dengan tidak ada pematahan praktis yang diketahui setelah dua dekade analisis. Gunakan SHA-384/512 ketika Anda menginginkan margin lebih besar atau ketika platform menjalankannya lebih cepat.
Kesalahan umum. Menggunakan SHA-256 saja untuk kata sandi — ia adalah hash cepat, dan kecepatan adalah musuh di sana (gunakan bcrypt/scrypt/Argon2id); dan mencampuradukkan panjang digest dengan kekuatan untuk pengaturan ketahanan tabrakan adversarial — panjang hanya menetapkan batas atas.
SHA-3 (SHA3-256 / SHA3-512) dan Keccak-256
Apa itu. SHA-3 (2015, distandarkan dari pengajuan Keccak oleh Bertoni, Daemen, Peeters, dan Van Assche) adalah standar hash NIST ketiga. Ia tidak berbagi apa pun dengan internal SHA-2 — ia dipilih justru agar menjadi cadangan independen seandainya SHA-2 pernah jatuh.
Cara kerjanya, secara intuitif. Alih-alih mengaduk potongan melalui status kecil, Keccak berulang kali “menyerap dan memeras”: masukan diserap bit demi bit ke dalam spons 5×5×64-bit, seluruh spons diacak oleh permutasi tetap (24 putaran operasi bitwise pada seluruh status), lalu bit digest diperas keluar. Gambaran spons itulah inti idenya: bit kapasitas tidak pernah dikeluarkan, dan merekalah yang membuat fungsi ini satu arah.
Keccak-256 vs SHA3-256. Keduanya berbeda tepat pada satu byte padding. Pengajuan asli tim Keccak mem-padding blok terakhir dengan 0x01; NIST mengubah padding standar menjadi 0x06 (pemisahan domain yang digunakan Keccak era SHA-2). Ethereum mengadopsi padding asli, sehingga “keccak256”-nya berbeda dari SHA3-256 standar untuk setiap masukan. Halaman ini menawarkan keduanya, dicentang secara terpisah.
Apakah sebaiknya digunakan? Ya — baik sebagai pilihan utama ketika kebijakan menginginkan algoritma non-SHA-2, atau di mana pun ekosistemnya sudah menggunakannya. Kesalahan umum: menganggap SHA3-256 dan Keccak-256 dapat saling menggantikan (tidak — bandingkan dua baris yang dihasilkan halaman ini untuk masukan yang sama); dan menganggap “SHA-3” menggantikan SHA-2 — keduanya aman, SHA-2 tetap yang lebih banyak diterapkan.
RIPEMD-160
Apa itu. RIPEMD-160 (1996, konsorsium RIPE para akademisi Eropa, diperkuat oleh Dobbertin, Bosselaers, dan Preneel) menghasilkan 160 bit. Ini adalah desain sepenuhnya Eropa, sengaja independen dari keluarga SHA yang dirancang NSA.
Cara kerjanya, secara intuitif. Setiap potongan 64-byte diproses oleh dua jalur paralel berisi 80 putaran dengan konstanta dan jumlah rotasi yang berbeda; di akhir, kedua jalur dan status lama digabungkan. Struktur dua jalur itulah cara perancang menahan serangan diferensial yang sedang memecahkan hash 1990-an lainnya.
Apakah sebaiknya digunakan? Dalam praktik ia bertahan terutama di dalam sistem lain: alamat Bitcoin menghasilkan hash kunci publiknya dengan RIPEMD-160(SHA-256(pk)), kunci OpenPGP lama menawarkannya sebagai opsi hash, dan ia adalah hash tradisional untuk potongan BitTorrent v1 bersama SHA-1. Tidak ada serangan tabrakan praktis terhadapnya, tetapi ukuran 160-bit memberinya margin keamanan terkecil di halaman ini. Untuk penggunaan mandiri yang baru, utamakan SHA-256 atau SHA-3.
Kesalahan umum. Percaya bahwa dua jalur paralel itu membuatnya “dua kali lebih kuat” — ukuran keluaran adalah yang membatasi ketahanan tabrakan; dan mencampuradukkannya dengan SHA-1 (panjang 40 karakter hex yang sama; kotak identifikasi di atas mendaftar keduanya berdampingan).
BLAKE2b-512 dan BLAKE2s-256
Apa itu. BLAKE2 (2013, Aumasson, Neves, Wilcox-O’Hearn dan Winnerlein) adalah hash yang dirancang untuk kecepatan perangkat lunak: BLAKE2b ditujukan untuk platform 64-bit dengan keluaran hingga 512-bit, BLAKE2s ditujukan untuk platform 32-bit dengan keluaran hingga 256-bit.
Cara kerjanya, secara intuitif. Ia berasal dari finalis SHA-3 BLAKE, yang intinya adalah permutasi berkunci yang dipinjam dari cipher aliran ChaCha: matriks 4×4 kata diacak dengan mengganti langkah pencampuran kolom dan diagonal — seperti mengocok kisi dari atas ke bawah, lalu sepanjang diagonal — sebanyak 12 (BLAKE2b) atau 10 (BLAKE2s) putaran per potongan. Karena langkah-langkah itu terpetakan dengan baik ke instruksi CPU, BLAKE2 sering lebih cepat daripada MD5 sambil menawarkan keamanan yang sebanding dengan SHA-3.
Apakah sebaiknya digunakan? Ya — ini desain modern yang sepenuhnya, dan belum pernah dipecahkan, populer di perangkat lunak yang sensitif terhadap kinerja (integritas paket di beberapa ekosistem, penyimpanan berbasis konten, deduplikasi cadangan) dan sebagai MAC yang cepat. Di halaman ini, BLAKE2b-512 menghasilkan digest terpanjang dan BLAKE2s-256 adalah opsi modern yang ringkas.
Kesalahan umum. Berpikir “lebih cepat pasti berarti lebih lemah” — BLAKE2 lebih cepat karena desainnya, bukan karena memotong sudut; dan tidak menyadari bahwa BLAKE2 juga menerima kunci (menjadikannya MAC) atau string personalisasi — halaman ini selalu menggunakannya dalam mode tanpa kunci.
Membaca kotak Verifikasi dan Identifikasi
Verifikasi. Kotak verifikasi menormalkan apa pun yang Anda tempel — huruf besar atau kecil, titik dua setiap dua digit, awalan sha256=, pembungkus gaya BSD SHA256 (file) = hash, baris GNU md5sum dengan nama berkas setelah hash, \r\n yang tersesat — lalu menghitung ulang setiap algoritma yang dicentang atas masukan Anda saat ini (teks atau berkas yang dipilih) dan melaporkan setiap algoritma yang cocok. Kecocokan hijau berarti “byte ini persis yang di-hash oleh penerbit”; merah berarti tidak ada algoritma yang dicentang menghasilkannya — coba centang lebih banyak algoritma, atau periksa apakah tempelan terpotong.
Identifikasi. Kotak identifikasi tidak menghitung hash apa pun; ia membaca bentuk string. Panjang mempersempit kandidat: 32 karakter hex bisa berupa MD5, 40 bisa SHA-1 atau RIPEMD-160, 64 bisa SHA-256 / SHA3-256 / Keccak-256 / BLAKE2s-256, 96 SHA-384, 128 SHA-512 / SHA3-512 / BLAKE2b-512. Prefiks mengungkap hash kata sandi ($2a$/$2b$/$2y$ bcrypt, $argon2id$, $scrypt$, $6$ sha512crypt, $1$ MD5-crypt) — itu spesies yang berbeda (lihat Generator Hash Kata Sandi) dan sengaja tidak dihitung oleh halaman ini. String dengan +, /, dan = yang panjangnya kelipatan 4 lebih mungkin berupa data berkode Base64 daripada digest hex; alat ini mendekodenya dan melaporkan panjang byte yang sesuai.
Apa yang bisa dan tidak bisa diberitahukan identifikasi. Panjang dan himpunan karakter adalah sidik jari dari format, bukan bukti algoritma: dua string 64-karakter hex bisa berasal dari SHA-256 atau dari SHA-512 yang dipotong. Identifier memberi peringkat kemungkinan; kotak Verifikasilah yang membuktikan algoritma mana yang sesuai dengan byte Anda.
Kesebelas algoritma dalam satu pandangan
| Algoritma |
Digesti |
Diciptakan |
Digest dari “The quick brown fox jumps over the lazy dog” |
| MD5 | 128 bit | 1992 | 9e107d9d372bb6826bd81d3542a419d6 |
| SHA-1 | 160 bit | 1995 | 2fd4e1c67a2d28fced849ee1bb76e7391b93eb12 |
| SHA-256 | 256 bit | 2001 | d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592 |
| SHA-384 | 384 bit | 2001 | ca737f1014a48f4c0b6dd43cb177b0afd9e5169367544c494011e3317dbf9a509cb1e5dc1e85a941bbee3d7f2afbc9b1 |
| SHA-512 | 512 bit | 2001 | 07e547d9586f6a73f73fbac0435ed76951218fb7d0c8d788a309d785436bbb642e93a252a954f23912547d1e8a3b5ed6e1bfd7097821233fa0538f3db854fee6 |
| SHA3-256 | 256 bit | 2015 | 69070dda01975c8c120c3aada1b282394e7f032fa9cf32f4cb2259a0897dfc04 |
| SHA3-512 | 512 bit | 2015 | 01dedd5de4ef14642445ba5f5b97c15e47b9ad931326e4b0727cd94cefc44fff23f07bf543139939b49128caf436dc1bdee54fcb24023a08d9403f9b4bf0d450 |
| Keccak-256 | 256 bit | sebelum 2015 | 4d741b6f1eb29cb2a9b9911c82f56fa8d73b04959d3d9d222895df6c0b28aa15 |
| RIPEMD-160 | 160 bit | 1996 | 37f332f68db77bd9d7edd4969571ad671cf9dd3b |
| BLAKE2b-512 | 512 bit | 2013 | a8add4bdddfd93e4877d2746e62817b116364a1fa7bc148d95090bc7333b3673f82401cf7aa2e4cb1ecd90296e3f14cb5413f8ed77be73045b13914cdcd6a918 |
| BLAKE2s-256 | 256 bit | 2013 | 606beeec743ccbeff6cbcdf5d5302aa855c256c29b88c8ed331ea1a6bf3c8812 |
Setiap digest dalam tabel di atas dihasilkan oleh mesin di halaman ini sendiri — centang semua algoritma, klik Sampel, dan bandingkan. Baris SHA-3, Keccak, RIPEMD-160, dan BLAKE2 berasal dari kernel crypto-shared.js yang dihosting sendiri dan digunakan di seluruh alat kriptografi situs ini.
FAQ
Kotak mana yang bisa dipercaya untuk sebuah unduhan? Kotak Verifikasi, dengan SHA-256 dicentang — sebagian besar penerbit saat ini menandatangani SHA-256 atau SHA-512. Kotak Identifikasi hanya menamai kandidat; ia tidak pernah membuktikan apa pun tentang berkas Anda.
Mengapa Keccak-256 ada dalam daftar? Karena Ethereum, Swarm, dan beberapa sistem buku besar menstandarkan padding pra-standar. Jika memverifikasi keccak256 Ethereum, Anda harus menggunakan baris itu, bukan SHA3-256.
Bisakah dua masukan berbeda berbagi digest? Secara teori, bisa — tak terhingga banyaknya masukan dipetakan ke himpunan digest yang terbatas (prinsip sarang merpati). Dalam praktik, menemukan pasangan seperti itu sebelum kematian panas alam semesta adalah inti dari “ketahanan tabrakan”, dan setiap algoritma di atas kecuali MD5 dan SHA-1 masih tegak.
Apakah hash itu enkripsi? Tidak. Enkripsi dapat dibalik dengan kunci; hash adalah blender satu arah. Tidak ada yang di halaman ini dapat “didekripsi” kembali menjadi teks Anda — dan itu adalah fitur, bukan keterbatasan.