Kas ir šis rīks?
Jaucējfunkcija (hash function) pieņem jebkādu ievadi un pārvērš to fiksēta garuma heksadecimālo simbolu virknē, ko sauc par jaucējkodu (digest). Vienāda ievade vienmēr dod vienādu izvadi, un pat viena simbola izmaiņa rada pilnīgi citu rezultātu. Šis rīks vienlaikus aprēķina piecus plaši lietotus algoritmus — MD5, SHA-1, SHA-256, SHA-384 un SHA-512 —, lai tu varētu tos salīdzināt vai izmantot to, kurš vajadzīgs.
Šie kodi ir vienvirziena: matemātiski nav iespējams no jaucējkoda atjaunot oriģinālo tekstu. Tas, ko dēvē par jaucējkoda "atšifrēšanu" tiešsaistē, patiesībā ir meklēšana — vietne vienkārši pārbauda, vai tavs kods sakrīt ar kādu no miljardiem iepriekš aprēķinātu izplatītu paroļu un frāžu kodu. Ja tava ievade nav šajā tabulā, to atrast nevar, jo pretēja funkcija vienkārši neeksistē.
SHA-2 saime (SHA-256, SHA-384, SHA-512) ir standartizēta NIST FIPS 180-4 dokumentā un joprojām ir droša. MD5 un SHA-1 stāsts ir citāds: praktiski sadursmju uzbrukumi (collision attacks) tika demonstrēti pret MD5 2004. gadā un pret SHA-1 2017. gadā ("SHAttered" uzbrukums), tāpēc abi tiek uzskatīti par kriptogrāfiski salauztiem.
Kāpēc to izmantot?
- Aprēķini piecus jaucējalgoritmus vienlaikus, nevis pārslēdzies starp rīkiem.
- Salīdzini MD5, SHA-1 vai SHA-256 kontrolsummu ar publicētu vērtību, lai pārbaudītu integritāti.
- Ģenerē spēcīgākus SHA-384 vai SHA-512 kodus lietojumiem, kam nepieciešama garāka izvade.
- Veido determinētus ID vai kešatmiņas atslēgas no jebkura teksta.
- 100% lokāli: tava ievade nekad neatstāj pārlūku, tāpēc tas ir droši jutīgam tekstam.
Kā to lietot
- Ieraksti vai ielīmē tekstu ievades laukā.
- Noklikšķini "Ģenerēt".
- Apskati MD5, SHA-1, SHA-256, SHA-384 un SHA-512 rezultātus (atzīmē "Lielie burti", ja mērķa sistēmai nepieciešami lielie burti).
- Noklikšķini "Kopēt" pie vajadzīgā jaucējkoda.
Piemērs
Ievade
helloIzvade
MD5: 5d41402abc4b2a76b9719d911017c592
SHA-1: aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d
SHA-256: 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824Jaucējkodi ir determinēti: "hello" katrā rīkā un katru reizi dod tieši šīs pašas vērtības.
Vajag tikai vienu algoritmu?
Ja jau zini, kurš algoritms tev vajadzīgs, un negribi, lai pārējie piegružo lapu, mūsu vienkāršotie viena algoritma rīki ir ātrāk pārskatāmi.
Piecu algoritmu salīdzinājums
Visi pieci ir vienvirziena jaucējfunkcijas, taču tie atšķiras pēc izvades garuma un drošības līmeņa.
| Algoritms | Izvades izmērs | Drošības statuss | Tipiskais lietojums |
|---|---|---|---|
| MD5 | 128 biti (32 heksadecimālie simboli) | Salauzts — sadursmes var izveidot mākslīgi | Kontrolsummas, kešatmiņas atslēgas, dublikātu atrašana |
| SHA-1 | 160 biti (40 heksadecimālie simboli) | Salauzts — praktiski sadursmju uzbrukumi pastāv kopš 2017. gada | Tikai vecāku sistēmu saderībai |
| SHA-256 | 256 biti (64 heksadecimālie simboli) | Drošs, aktuālais nozares standarts | Digitālie paraksti, TLS, blokķēde, integritātes pārbaudes |
| SHA-384 | 384 biti (96 heksadecimālie simboli) | Drošs, garāka izvade nekā SHA-256 | Augstas drošības paraksti, daži TLS/PKI iestatījumi |
| SHA-512 | 512 biti (128 heksadecimālie simboli) | Drošs, garākā izvade no šiem | Lietojumi, kam vajadzīgs maksimāls koda garums |
Biežākie lietojuma gadījumi
- Pārbaude, vai lejupielādēts fails sakrīt ar izdevēja publicēto kontrolsummu, pirms tā palaišanas.
- Determinētu kešatmiņas atslēgu vai ID veidošana no jebkura teksta.
- Pārbaude, vai divi dokumenti vai ieraksti ir baitpēc-baita identiski, tos tieši nesalīdzinot.
- Spēcīgāka koda (SHA-384/SHA-512) izveide, ja to konkrēti prasa lietojums.
Biežāk uzdotie jautājumi
Vai jaucējkodu var atšifrēt atpakaļ oriģinālajā tekstā?
Nē. Jaucēkodēšana ir izstrādāta kā vienvirziena process — nav ne atslēgas, ne matemātiskas operācijas, kas atgrieztu kodu atpakaļ ievadē. Vietnes, kas apgalvo, ka "atšifrē MD5" vai "atšifrē SHA-256", faktiski tikai meklē milzīgā iepriekš aprēķinātu ievažu un to kodu tabulā. Ja tavs oriģinālais teksts bija pietiekami neparasts, lai nebūtu šajā tabulā, to nevar atgūt neviens.
Kā tad vietnes pārbauda paroli, to neglabājot atklātā tekstā?
Tās glabā tavas paroles jaucējkodu, nevis pašu paroli. Kad piesakies, tās aprēķina ievadītā koda jaucējkodu un salīdzina abus kodus. Ja tie sakrīt, sakrita arī paroles — un vietnei nekad nav jāglabā vai jāatšifrē tava faktiskā parole.
Kuru algoritmu izmantot?
Drošībai svarīgiem mērķiem (paraksti, sertifikāti, lejupielāžu pārbaude) izmanto SHA-256 vai augstāku — gan MD5, gan SHA-1 ir kriptogrāfiski salauzti un tiem nevajadzētu uzticēties drošības jautājumos. Ar drošību nesaistītiem mērķiem, piemēram, kontrolsummām, kešatmiņas atslēgām vai dublikātu atrašanai, MD5 joprojām der un aprēķinās ātrāk.
Kāpēc tam pašam tekstam saņemu citu jaucējkodu nekā citā rīkā?
Parasti tā ir neredzama atšķirība: liekā rindiņas beigu atstarpe, atšķirīgas rindas beigas (\r\n pretstatā \n) vai atšķirīga teksta kodēšana. Baitpēc-baita identiska ievade katrā pareizā implementācijā vienmēr dod identisku kodu.
Vai mans teksts tiek sūtīts uz serveri?
Nē. MD5 tiek aprēķināts ar JavaScript tavā pārlūkā, bet SHA-1/SHA-256/SHA-384/SHA-512 izmanto pārlūka iebūvēto Web Crypto API. Nekas neatstāj tavu ierīci.
Kuru jaucējkodu tiešām vajadzētu izmantot?
Ja no tā atkarīgs kaut kas ar drošību saistīts — failu integritātes pārbaude, paraksti, ar paroli saistīti lietojumi — izvēlies SHA-256: tas ir NIST FIPS 180-4 standarts, kurā lielākā daļa programmatūras izplata kontrolsummas. MD5 un SHA-1 ir pieņemami tikai ar drošību nesaistītiem mērķiem, piemēram, kešatmiņas atslēgām, dublikātu atrašanai vai vecāku sistēmu prasību izpildei.