Apa yang dilakukan tool ini
Menghitung hash MD5 dari teks atau file apapun di browser kamu, mengembalikan digest heksadesimal 32 karakter. MD5 adalah fungsi hash 128-bit dari RFC 1321, dirancang oleh Ron Rivest pada 1991. Cepat — file multi-gigabyte di-hash dalam hitungan detik — tapi tidak tahan terhadap collision: dua input berbeda dapat direkayasa untuk menghasilkan hash MD5 yang sama, dan telah didemonstrasikan di alam liar sejak 2005.
Saat MD5 baik-baik saja
- ETag dan cache content-addressable. Cache web yang meng-hash objeknya dengan MD5 menggunakan hash sebagai key bucket cepat, bukan jaminan keamanan. Model attacker adalah « dua client tidak sengaja menghasilkan konten yang sama », yang masih ditangani MD5 dengan baik.
- Deduplikasi file pada set yang dipercaya. Jika kamu mengontrol input (backup kamu sendiri, dokumen tim kamu), collision MD5 sangat tidak mungkin secara astronomis tanpa attacker.
- Membandingkan dengan checksum legacy. Download software lama, daftar mirror FTP, dan dokumentasi pra-2010 sering hanya mempublikasikan MD5. Memverifikasi angka itu adalah untuk apa MD5 ada.
- Fingerprint file cepat sebelum transfer. Dua engineer yang membandingkan apakah mereka memiliki « file yang sama » mendapat manfaat dari kecepatan MD5; model ancamannya adalah human error, bukan collision adversarial.
Saat MD5 tidak baik-baik saja
- Penyimpanan password. Gunakan hash password yang lambat dan ber-salt seperti bcrypt, scrypt, atau Argon2. MD5 terlalu cepat — GPU modern menghitung miliaran MD5 per detik, jadi database yang bocor di-rainbow-table dalam hitungan menit.
- Signature digital atau sertifikat. Collision nyata. Peneliti membangun sertifikat CA palsu dengan mengeksploitasi collision MD5 pada 2008. Apapun yang membiarkan attacker memilih input rusak.
- Verifikasi integritas terhadap attacker yang bertekad. Jika attacker dapat membuat file yang kamu hash, MD5 tidak melindungi kamu. SHA-256 melindungi.
- Apapun yang kepatuhan modern memerlukan SHA-2 atau SHA-3. PCI DSS, FIPS 140-3, dan sebagian besar standar pemerintah telah melarang MD5 untuk aplikasi baru sejak akhir 2000-an.
Vektor uji
Verifikasi implementasi terhadap vektor uji kanonis RFC 1321:
- String kosong
""→d41d8cd98f00b204e9800998ecf8427e "a"→0cc175b9c0f1b6a831c399e269772661"abc"→900150983cd24fb0d6963f7d28e17f72"message digest"→f96b697d7cb7938d525a2f31aaf161d0"The quick brown fox jumps over the lazy dog"→9e107d9d372bb6826bd81d3542a419d6
Paste salah satu di input atas; digest harus cocok persis.
Catatan
Mengapa hash 32 karakter dan bukan 16? MD5 menghasilkan 128 bit = 16 byte. Setiap byte di-render sebagai 2 karakter hex, memberi 32 karakter terlihat. Digest yang mendasari adalah 16 byte di kedua arah.
Apakah MD5 membocorkan informasi tentang input? Secara kriptografis, tidak — diberi hash kamu tidak dapat memulihkan input. Tapi untuk input pendek atau terstruktur (kata tunggal, password umum) kamu dapat mencari hash di rainbow table publik dalam milidetik. Itulah mengapa MD5 tidak cocok untuk penyimpanan password bahkan saat « di-salt lemah ».
Mengapa MD5 saya berbeda dari yang dikembalikan md5sum? Kemungkinan besar input berbeda karena newline trailing. echo "hello" menambahkan \n; paste "hello" di sini tidak. Gunakan echo -n, atau hash file langsung dengan file picker.
Tools terkait
- Generator hash — hitung MD5, SHA-1, SHA-256, SHA-384, dan SHA-512 berdampingan
- SHA-256 — default modern untuk hashing yang relevan keamanan
- Base64 — pasangkan dengan MD5 untuk key penyimpanan content-addressable