Kas ir šis rīks?
MD5 ir jaucējfunkcija, kas pārvērš jebkuru ievadi fiksētā 32 rakstzīmju heksadecimālā nospiedumā. Vienāda ievade vienmēr rada vienādu jaucējkodu, un pat vienas rakstzīmes maiņa rada pilnīgi citu rezultātu. Tas padara jaucējkodus noderīgus kontrolsummām, kešatmiņas atslēgām, dublēšanās novēršanai un datu integritātes pārbaudēm.
Drošības piezīme: MD5 ir kriptogrāfiski salauzts — sadursmes var tikt radītas — tāpēc to nedrīkst izmantot parolēm vai parakstiem. Tam izmantojiet SHA-256 (arī nodrošināts zemāk) vai specializētu paroļu jaukšanu, piemēram, bcrypt. MD5 joprojām ir piemērots ne-drošības lietojumiem, piemēram, kontrolsummām un kešatmiņas atslēgām.
MD5 aizsākās 1992. gadā, kad Rons Rivests to publicēja kā RFC 1321 — kas daļēji izskaidro, kāpēc tik daudz mantoto sistēmu joprojām to sagaida, neskatoties uz zināmajām vājībām.
Kāpēc to izmantot?
- Ģenerējiet kontrolsummas, lai pārbaudītu, ka fails vai virkne nav nejauši mainīta.
- Izveidojiet determinētas kešatmiņas atslēgas un dublēšanās novēršanas ID.
- Salīdziniet ar zināmu MD5, lai pārbaudītu datu integritāti.
- Iegūstiet SHA-1 un SHA-256 vienlaikus — nav nepieciešams otrs rīks.
- 100% lokāli: jūsu ievade nekad neatstāj pārlūku.
Kā to lietot
- Ierakstiet vai ielīmējiet tekstu ievades laukā.
- Nospiediet "Generate Hash".
- Nolasiet MD5, SHA-1 un SHA-256 rezultātus (atzīmējiet "Uppercase", ja jūsu sistēma sagaida lielos burtus).
- Nospiediet "Copy" pie vajadzīgā jaucējkoda.
Piemērs
Ievade
helloIzvade
MD5: 5d41402abc4b2a76b9719d911017c592
SHA-256: 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824Jaucējkodi ir determinēti: "hello" rada tieši šīs vērtības katrā rīkā, katru reizi.
Kuru jaucējkodu izmantot?
Visi trīs ir vienvirziena jaucējfunkcijas, taču tie nav savstarpēji aizvietojami — pareizā izvēle pilnībā ir atkarīga no tā, vai jums vajadzīga drošība vai tikai nospiedums.
| Algoritms | Izvades izmērs | Izmantojiet tam | Neizmantojiet tam |
|---|---|---|---|
| MD5 | 128 bit (32 heks. rakstz.) | Kontrolsummas, kešatmiņas atslēgas, dublēšanās novēršana, nejaušu faila izmaiņu noteikšana | Paroles, digitālie paraksti, jebkas drošības ziņā svarīgs — sadursmes var tikt radītas |
| SHA-1 | 160 bit (40 heks. rakstz.) | Mantoto sistēmu saderība (piemēram, vecie Git commit jaucējkodi) | Jauni drošības ziņā svarīgi risinājumi — praktiski sadursmju uzbrukumi pastāv kopš 2017. gada |
| SHA-256 | 256 bit (64 heks. rakstz.) | Digitālie paraksti, TLS sertifikāti, blokķēde, kontrolsummas, kur svarīga izturība pret manipulācijām | Paroļu tiešas glabāšanas — pat SHA-256 tam ir pārāk ātrs; izmantojiet bcrypt, scrypt vai Argon2 |
Izplatīti lietošanas gadījumi
- Pārbaudot, ka lejupielādēts fails atbilst izdevēja kontrolsummai pirms tā palaišanas, jaucot failu un salīdzinot rezultātu.
- Ģenerējot determinētu kešatmiņas atslēgu no URL vai vaicājuma virknes, lai identiski pieprasījumi vienmēr atbilstu tam pašam kešatmiņas ierakstam.
- Dublējošu ierakstu novēršanā lielā sarakstā, jaucot katru un salīdzinot jaucējkodus, nevis salīdzinot pilnu tekstu.
- Ātri pārbaudot, vai divas faila kopijas ir baitu ziņā identiskas, tās neatverot vai detalizēti nesalīdzinot.
Kāpēc sadursmes ir svarīgas drošībai, bet ne kontrolsummām
Jaucējkoda sadursme nozīmē, ka divas dažādas ievades rada vienādu jaucējkoda izvadi — matemātiski neizbēgami jebkurai jaucējfunkcijai (jo ievades ir bezgalīgas, bet izvades ir fiksēta garuma), taču praktiskais risks pilnībā ir atkarīgs no lietošanas gadījuma. Drošības parakstam apzināti radīta sadursme ļauj uzbrucējam aizstāt ļaunprātīgu failu ar likumīgu, saglabājot to pašu jaucējkodu — tieši tas ir pierādīts pret MD5 kopš 2004. gada un pret SHA-1 kopš 2017. gada. Kontrolsummai vai kešatmiņas atslēgai neviens necenšas radīt sadursmi — jūs vienkārši pārbaudāt, vai fails nejauši nav bojāts, vai vai divas patvaļīgas virknes sakrīt — tāpēc tā pati matemātiskā vājība, kas sagrauj MD5 drošības lietojumu, praktiski neietekmē tā ne-drošības lietojumus.
Vai nepieciešams salīdzināt vairākus algoritmus vienlaikus?
Ja vēlaties redzēt viena un tā paša teksta MD5, SHA-1, SHA-256, SHA-384 un SHA-512 vērtības blakus, nevis pa vienai, izmantojiet mūsu vairāku algoritmu salīdzināšanas rīku.
Biežāk uzdotie jautājumi
Vai es varu atšifrēt MD5 jaucējkodu atpakaļ oriģinālajā tekstā?
Nē — jaukšana ir vienvirziena pēc dizaina; oriģinālu nevar aprēķināt no jaucējkoda. "MD5 atšifrēšanas" vietnes vienkārši meklē jaucējkodus milzīgās, iepriekš aprēķinātās izplatītu ievades tabulās, tāpēc unikālu ievadi nevar atgriezt.
Vai MD5 ir droši paroļu glabāšanai?
Nē, absolūti ne. MD5 ir ātri uzlaužams ar brutālā spēka metodi, un tam ir zināmi sadursmju uzbrukumi. Paroļu vietā izmantojiet bcrypt, scrypt vai Argon2. MD5 ir pieņemams tikai ne-drošības nolūkiem, piemēram, kontrolsummām.
Kāpēc tas pats teksts dod citu jaucējkodu nekā citā rīkā?
Parasti neredzamu atšķirību dēļ: beigu jaunas rindas simbols vai atstarpe, atšķirīgi rindu beigu simboli (\r\n pret \n) vai atšķirīga teksta kodēšana. Baitu ziņā identiska ievade vienmēr dod identisku jaucējkodu.
Kāda ir atšķirība starp MD5, SHA-1 un SHA-256?
Tie atšķiras pēc izvades garuma un drošības: gan MD5 (128 bit), gan SHA-1 (160 bit) ir salauzti drošības lietojumam; SHA-256 (256 bit) ir pašreizējais standarts un joprojām ir drošs. Ja šaubaties, izmantojiet SHA-256.
Vai mans teksts tiek nosūtīts uz serveri jaukšanai?
Nē. MD5 tiek aprēķināts ar JavaScript, un SHA-1/SHA-256 — ar jūsu pārlūka iebūvēto Web Crypto API — viss paliek jūsu ierīcē.