Kas yra šis įrankis?
MD5 ("Message Digest 5") paima bet kokią įvestį — žodį, slaptažodį, visą failą — ir sukuria fiksuotą 128 bitų atspaudą, užrašomą kaip 32 šešioliktainiai simboliai. Ta pati įvestis visada duoda tą pačią maišą, o pakeitus vos vieną simbolį gaunama visiškai kitokia.
Žodis "šifravimas" dažnai priskiriamas MD5, bet tai techniškai neteisinga. Šifravimas yra grįžtamas su tinkamu raktu; maišymas visiškai negrįžtamas. "MD5 iššifravimo" paslaugos, kurias galėjote matyti internete, iš tikrųjų neapverčia matematikos — jos ieško jūsų maišos milžiniškoje iš anksto apskaičiuotoje dažnų slaptažodžių ir žodžių lentelėje ir pavyksta tik tuo atveju, jei jūsų originalus tekstas jau yra toje lentelėje.
MD5 1992 metais paskelbė Ronas Rivestas kaip RFC 1321. Saugumo požiūriu jis kriptografiškai sulaužytas (susidūrimus galima sukurti tyčia), tačiau vis dar plačiai naudojamas kontrolinėms sumoms, talpyklos raktams ir dublikatų šalinimui, kur saugumas nėra svarbus.
Kodėl jį naudoti?
- Sugeneruokite MD5 maišą, kad patikrintumėte, jog failas ar eilutė nebuvo atsitiktinai pakeisti.
- Palyginkite savo maišą su žinoma/paskelbta MD5, kad patvirtintumėte vientisumą.
- Kurkite deterministinius talpyklos raktus ar dublikatų šalinimo ID.
- Aiškiai suprasite, kodėl MD5 maišos "iššifravimas" iš tikrųjų neįmanomas.
- 100% vietinis: jūsų įvestis maišoma jūsų naršyklėje ir niekada neįkeliama.
Kaip naudoti
- Įveskite arba įklijuokite tekstą į įvesties lauką.
- Spauskite "Generate MD5".
- Peržiūrėkite gautą 32 simbolių maišą (pažymėkite "Uppercase output", jei reikia didžiųjų raidžių).
- Spauskite "Copy", kad nukopijuotumėte maišą, arba naudokite ją palyginimui su jau turima maiša.
Pavyzdys
Įvestis
helloIšvestis
5d41402abc4b2a76b9719d911017c592MD5 yra deterministinis: žodis "hello" duoda būtent šią maišą kiekviename įrankyje, kiekvieną kartą.
"Šifravimas" ir "maiša": kodėl terminija svarbi
Šifravimas ir maišymas sprendžia skirtingas problemas, o jų sumaišymas veda prie realių saugumo klaidų. Šifravimas grįžtamai transformuoja duomenis naudojant raktą — užšifruojama raktu, iššifruojama tuo pačiu ar poriniu raktu, gaunamas originalas atgal. Maišymas transformuoja duomenis vienpusiu būdu be jokio rakto — pagal apibrėžimą nėra operacijos, kuri maišą paverstų atgal į įvestį.
MD5 yra maišos funkcija, o ne šifras. Vadinti tai "MD5 šifravimu" – įprasta neformali kalba, bet tai sukuria neteisingą lūkestį: teisėtos "MD5 iššifravimo" operacijos nėra. Bet kas, reklamuojama kaip tokia, yra arba paieškos lentelė (veikia tik dažnoms, jau žinomoms įvestims), arba tiesiog neveikia.
Kada MD5 vis dar galima naudoti
- Patikrinti, ar atsisiųstas failas atitinka leidėjo kontrolinę sumą prieš jį paleidžiant.
- Generuoti deterministinį talpyklos raktą iš URL ar užklausos eilutės.
- Šalinti didelio įrašų sąrašo dublikatus, maišant kiekvieną ir lyginant maišas vietoje viso teksto.
- Greitai patikrinti, ar du failai baitas baitą identiški, jų nepalyginant tiesiogiai.
Kada MD5 visiškai vengti
Niekada nenaudokite MD5 slaptažodžiams, skaitmeniniams parašams ar bet kam, kur svarbu, kad užpuolikas negalėtų pasinaudoti suklastotu sutapimu. Kadangi susidūrimus galima sukurti tyčia, o nesūdytas trumpų ar dažnų įvesčių MD5 maišas galima apversti naudojant paieškos lenteles, MD5 tokiuose kontekstuose nesuteikia jokio realaus saugumo. Slaptažodžiams naudokite bcrypt, scrypt ar Argon2. Parašams ir vientisumui, kur svarbus atsparumas klastojimui, naudokite SHA-256 ar stipresnius algoritmus.
Dažniausiai užduodami klausimai
Ar galiu iššifruoti MD5 maišą atgal į originalų tekstą?
Ne — maišymas iš prigimties vienpusis; originalo iš maišos apskaičiuoti negalima. "MD5 iššifravimo" svetainės tiesiog ieško maišų milžiniškose iš anksto apskaičiuotose dažnų įvesčių lentelėse, todėl unikalių įvesčių apversti negalima.
Tai ką iš tikrųjų daro "MD5 iššifravimo" svetainės?
Jos palaiko didžiules duomenų bazes, susiejančias dažnus žodžius, vardus ir nutekėjusius slaptažodžius su jų MD5 maišomis, tada atlieka paiešką. Jei jūsų originalaus teksto jų duomenų bazėje nėra — o tai tikėtina bet kam netrivialiam — jos tiesiog negrąžina rezultato.
Ar MD5 saugu naudoti slaptažodžiams saugoti?
Ne, absoliučiai ne. MD5 greitai perlaužiamas grubios jėgos metodu ir turi žinomas susidūrimų atakas, o lentelėmis pagrįstas "iššifravimas" – būtent ta ataka, kuri sulaužo nesūdytą MD5 slaptažodžių saugojimą. Slaptažodžiams naudokite bcrypt, scrypt ar Argon2.
Kodėl tas pats tekstas duoda kitokią maišą kitame įrankyje?
Paprastai dėl nematomų skirtumų: papildomos eilutės pabaigos ar tarpo, skirtingų eilučių pabaigų (\r\n vs \n) ar skirtingo teksto kodavimo. Baitas baitą identiška įvestis visada duoda identišką MD5 maišą.
Ar mano tekstas siunčiamas į serverį maišymui?
Ne. MD5 maiša apskaičiuojama JavaScript kodu tiesiai jūsų naršyklėje — jūsų įvestis niekada niekur nesiunčiama.