Langkau ke kandungan

Penjana Hash MD5 Dalam Talian - Alat Penyulitan MD5 Percuma

Hasilkan hash MD5 serta-merta dengan alat dalam talian percuma kami. Pemprosesan di pihak pelanggan memastikan privasi. Sempurna untuk semakan integriti data dan pengesahan fail.

Penjana Hash MD5

Kalkulator Pemuatan...
📚

Dokumentasi

Apakah penjana cincangan MD5?

Penjana cincangan MD5 ialah alat yang menukar apa-apa cebisan teks kepada kod panjang tetap yang dipanggil cincangan MD5. MD5 ialah singkatan bagi Message-Digest Algorithm 5, iaitu fungsi cincangan yang diterbitkan pada 1992. Pemberian satu perkataan, ayat atau keseluruhan fail kepadanya sentiasa menghasilkan hasil sepanjang 32 aksara yang sama, manakala perubahan yang sekecil-kecilnya pada input menghasilkan hasil yang sama sekali berbeza. Alat ini menjalankan algoritma tersebut terus dalam pelayar menggunakan JavaScript, jadi teks yang ditaip tidak pernah dihantar ke pelayan.

Cara cincangan MD5 berfungsi

MD5 ialah fungsi sehala. Ia menerima input dengan apa-apa panjang dan menghasilkan output bersaiz tetap yang dipanggil cincangan atau intisari. “Sehala” bermaksud proses itu tidak boleh diterbalikkan: tiada kaedah untuk membina semula teks asal daripada cincangan sahaja.

Algoritma tersebut memproses data melalui peringkat berikut:

  1. Mesej ditukar kepada bait dan ditambah pad supaya panjangnya menjadi gandaan 512 bit.
  2. Medan sepanjang 64 bit yang merekodkan panjang mesej asal ditambah pada penghujungnya.
  3. Empat nombor sepanjang 32 bit ditetapkan kepada nilai permulaan tetap.
  4. Mesej yang telah ditambah pad dibahagikan kepada blok 512 bit. Setiap blok melalui empat pusingan yang mengandungi 16 operasi, iaitu sebanyak 64 operasi bagi setiap blok. Setiap operasi mencampurkan data blok ke dalam empat nombor yang dikemas kini secara berterusan menggunakan fungsi bitwise, penambahan dan putaran bit.
  5. Selepas setiap blok diproses, empat nombor sepanjang 32 bit itu digabungkan dan ditulis sebagai digit heksadesimal.

Hasilnya sentiasa sepanjang 128 bit, dipaparkan sebagai 32 aksara heksadesimal (0-9 dan a-f), kerana setiap bait daripada output 128 bit ditulis sebagai dua digit heksadesimal.

Sesuatu fungsi cincangan dianggap selamat apabila mempunyai tiga sifat: input yang sama sentiasa memberikan output yang sama, adalah tidak praktikal untuk mencari input yang menghasilkan cincangan yang dipilih, dan adalah tidak praktikal untuk mencari dua input berbeza yang menghasilkan cincangan yang sama. MD5 masih mempunyai sifat pertama, tetapi dua sifat yang lain telah dipatahkan, seperti yang diterangkan di bawah.

Contoh cincangan MD5

Cincangan bagi perkataan “hello” menggunakan MD5 menghasilkan:

1Input:  hello
2Output: 5d41402abc4b2a76b9719d911017c592
3

Cincangan bagi rentetan kosong juga menghasilkan hasil tetap yang bukan kosong, kerana pad dan medan panjang masih melalui algoritma tersebut:

1Input:  (empty string)
2Output: d41d8cd98f00b204e9800998ecf8427e
3

Menukar satu aksara, contohnya menggunakan huruf besar pada huruf pertama sehingga menjadi “Hello”, menghasilkan rentetan sepanjang 32 aksara yang sama sekali berbeza. Ini dipanggil kesan avalanche: perubahan kecil pada input menyebabkan perubahan besar yang tidak dapat diramalkan pada output.

Cara menggunakan penjana cincangan MD5 ini

  1. Taip atau tampal teks ke dalam kotak input.
  2. Cincangan muncul secara automatik di bawah kotak dan dikemas kini apabila teks berubah. Tiada butang berasingan yang perlu ditekan.
  3. Klik “Salin” untuk menyalin cincangan sepanjang 32 aksara ke papan keratan.
  4. Bar kecil berwarna muncul di bawah hasil, dijana daripada sebahagian cincangan, sebagai pemeriksaan visual pantas untuk melihat sama ada dua cincangan berbeza.

Oleh sebab pengiraan berlaku dalam enjin JavaScript pelayar itu sendiri, halaman ini tidak memerlukan sambungan Internet selepas dimuatkan, dan teks yang ditaip tidak dihantar ke mana-mana.

Kegunaan biasa cincangan MD5

  • Memeriksa bahawa fail yang dimuat turun tidak rosak semasa pemindahan, dengan membandingkan cincangannya dengan nilai yang diterbitkan.
  • Membina kunci carian atau pengecam cache untuk data, kerana cincangan ialah pengganti ringkas bersaiz tetap bagi nilai yang lebih panjang.
  • Mengesan fail pendua dengan membandingkan cincangan dan bukannya kandungan fail sepenuhnya.
  • Sistem kawalan versi dan sistem binaan menggunakan cincangan untuk mengesan sama ada fail telah berubah.

MD5 tidak sesuai untuk menyimpan kata laluan, menjana tandatangan digital atau apa-apa keadaan lain apabila penyerang mungkin cuba memalsukan atau menterbalikkan cincangan tersebut. Sebabnya diterangkan dalam bahagian seterusnya.

Sejarah MD5

Ronald Rivest, seorang kriptografer Amerika, mereka bentuk MD5 pada 1991 sebagai pengganti algoritmanya yang terdahulu, MD4. Internet Engineering Task Force menerbitkan spesifikasi tersebut sebagai RFC 1321 pada (3,360 cm) 1992, dan MD5 digunakan secara meluas untuk checksum serta, untuk suatu tempoh, bagi tujuan keselamatan.

Kelemahan dalam struktur dalaman MD5 telah dikenal pasti seawal 1996. Pada 2004, pasukan yang diketuai oleh kriptografer Xiaoyun Wang menunjukkan kaedah praktikal untuk menghasilkan dua input berbeza yang memberikan cincangan MD5 yang sama, iaitu kecacatan yang dipanggil perlanggaran. Pada 2008, kumpulan penyelidik lain menggunakan serangan perlanggaran untuk memalsukan sijil keselamatan laman web yang menipu, yang pada masa itu akan diterima oleh pelayar sebagai tulen. Hasil ini menyebabkan badan piawaian keselamatan berhenti mengesyorkan MD5 bagi apa-apa keadaan yang melibatkan pemalsuan.

Kelemahan keselamatan MD5

  • Ketahanan terhadap perlanggaran telah dipatahkan. Dari segi pengiraan, adalah praktikal untuk membina dua input berbeza dengan cincangan MD5 yang sama.
  • Kelajuan menjadi kelemahan untuk kata laluan. MD5 direka untuk dikira dengan pantas, yang berguna untuk jumlah semak tetapi tidak baik untuk penyimpanan kata laluan, kerana penyerang boleh mencuba berbilion tekaan sesaat pada perkakasan biasa.
  • Tiada serangan praimej yang lebih pantas daripada kaedah cuba jaya diketahui umum, jadi mendapatkan semula input tepat daripada cincangan masih sukar, tetapi perkara ini sahaja tidak menjadikan MD5 sesuai untuk kegunaan yang sensitif dari segi keselamatan.

Disebabkan isu ini, MD5 tidak sesuai untuk penyimpanan kata laluan, tandatangan digital, sijil SSL/TLS atau apa-apa aplikasi yang membolehkan seseorang sengaja cuba menghasilkan cincangan yang sepadan.

Alternatif kepada MD5

  • SHA-256, sebahagian daripada keluarga SHA-2, menghasilkan cincangan sepanjang 256 bit dan tiada serangan perlanggaran praktikal yang diketahui.
  • SHA-3 ialah piawaian lebih baharu yang dibina berdasarkan reka bentuk dalaman yang berbeza daripada SHA-2.
  • BLAKE2 ialah fungsi cincangan pantas dengan keselamatan yang dianggap setanding dengan SHA-3.
  • Bcrypt, scrypt atau Argon2 direka khusus untuk penyimpanan kata laluan kerana algoritma tersebut sengaja diperlahankan dan tahan terhadap tekaan yang dipercepatkan perkakasan.

Soalan lazim

Untuk apakah MD5 digunakan pada masa kini?

Kebanyakannya untuk tugas bukan keselamatan seperti pemeriksaan integriti fail, penghapusan pendua dan kunci cache. Ia tidak lagi disyorkan untuk kata laluan, tandatangan atau sijil.

Bolehkah cincangan MD5 diterbalikkan untuk mendapatkan teks asal?

Tidak. MD5 ialah fungsi sehala, jadi tiada pengiraan yang menukar cincangan kembali kepada inputnya. Penyerang masih boleh meneka input yang berkemungkinan dan mencincang setiap satunya untuk memeriksa padanan, sebab itulah MD5 tidak selamat untuk kata laluan.

Mengapakah MD5 tidak selamat untuk menyimpan kata laluan?

Oleh sebab pengiraannya sangat pantas, penyerang dengan perkakasan moden boleh menguji jumlah tekaan kata laluan yang amat besar sesaat. Algoritma yang direka khusus seperti bcrypt, scrypt atau Argon2 sengaja diperlahankan untuk menentang perkara ini.

Berapakah panjang cincangan MD5?

Sentiasa sepanjang 128 bit, dipaparkan sebagai 32 aksara heksadesimal, tanpa mengira panjang atau kependekan teks input.

Bolehkah dua input berbeza menghasilkan cincangan MD5 yang sama?

Ya. Ini dipanggil perlanggaran, dan penyelidik telah menunjukkan kaedah praktikal untuk membina pasangan sedemikian sejak 2004. Inilah sebab utama MD5 tidak lagi dianggap selamat.

Adakah alat ini menghantar teks yang ditaip ke pelayan?

Tidak. Cincangan dikira oleh JavaScript yang berjalan dalam pelayar, dan input tidak pernah keluar dari peranti.

Apakah perbezaan antara MD5 dengan SHA-256?

Kedua-duanya ialah fungsi cincangan, tetapi SHA-256 menghasilkan cincangan yang lebih panjang, iaitu sepanjang 256 bit, dan tiada serangan perlanggaran praktikal yang diketahui, manakala ketahanan terhadap perlanggaran MD5 telah dipatahkan. SHA-256 ialah pilihan yang lebih baik apabila keselamatan penting.

Rujukan

  1. Rivest, R. (1992). "The MD5 Message-Digest Algorithm." RFC 1321, Internet Engineering Task Force. https://tools.ietf.org/html/rfc1321
  2. Turner, S., Chen, L. (2011). "Updated Security Considerations for the MD5 Message-Digest and the HMAC-MD5 Algorithms." RFC 6151, Internet Engineering Task Force. https://tools.ietf.org/html/rfc6151
  3. Wang, X., Yu, H. (2005). “How to Break MD5 and Other Hash Functions.” Advances in Cryptology - EUROCRYPT 2005.
  4. Sotirov, A., et al. (2008). “MD5 Considered Harmful Today: Creating a Rogue CA Certificate.” Dibentangkan pada 25 Kongres Komunikasi Chaos.
  5. National Institute of Standards and Technology (2015). "SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions." FIPS 202. https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf