Kaj je to orodje?
Razpršilna funkcija vzame poljuben vnos in ga spremeni v niz šestnajstiških znakov s fiksno dolžino, imenovan povzetek. Isti vnos vedno da isti povzetek, sprememba že enega znaka pa da povsem drugačen rezultat. To orodje na istem vnosu izvede pet razširjenih algoritmov — MD5, SHA-1, SHA-256, SHA-384 in SHA-512 — tako da jih lahko primerjaš ali vzameš tistega, ki ga potrebuješ.
Ti povzetki so enosmerni: matematično je neizvedljivo iz razpršilne vrednosti obnoviti izvirno besedilo. Kar ljudje imenujejo »dešifriranje« razpršilne vrednosti na spletu, je v resnici iskanje — stran preprosto preveri, ali se tvoja razpršilna vrednost ujema z eno od milijard vnaprej izračunanih razpršilnih vrednosti pogostih gesel in fraz. Če tvojega vnosa ni v njihovi tabeli, ga ni mogoče najti, ker inverzne funkcije preprosto ni.
Družina SHA-2 (SHA-256, SHA-384, SHA-512) je standardizirana s strani NIST v FIPS 180-4 in ostaja nezlomljena. MD5 in SHA-1 sta druga zgodba: praktični napadi s trki so bili demonstrirani proti MD5 leta 2004 in proti SHA-1 leta 2017 (napad »SHAttered«), zato se oba štejeta za kriptografsko zlomljena.
Zakaj ga uporabiti?
- Izračuna pet algoritmov razpršanja hkrati namesto preklapljanja med orodji.
- Primerjaj vsoto MD5, SHA-1 ali SHA-256 z objavljeno vrednostjo za preverjanje celovitosti.
- Ustvari močnejše povzetke SHA-384 ali SHA-512 za aplikacije, ki zahtevajo daljši izpis.
- Zgradi deterministične identifikatorje ali predpomnilniške ključe iz poljubnega besedila.
- 100 % lokalno: tvoj vnos nikoli ne zapusti brskalnika, zato je varno za občutljivo besedilo.
Kako ga uporabljati
- Vtipkaj ali prilepi svoje besedilo v vnosno polje.
- Klikni »Generate«.
- Preberi rezultate MD5, SHA-1, SHA-256, SHA-384 in SHA-512 (označi »Uppercase output«, če tvoj ciljni sistem pričakuje velike črke).
- Klikni »Copy« ob razpršilni vrednosti, ki jo potrebuješ.
Primer
Vnos
helloRezultat
MD5: 5d41402abc4b2a76b9719d911017c592
SHA-1: aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d
SHA-256: 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824Razpršilne vrednosti so deterministične: »hello« ustvari te natančne vrednosti v vsakem orodju, vsakič.
Potrebuješ samo en algoritem?
Če že veš, kateri algoritem potrebuješ, in ne želiš, da ti drugi zasedajo stran, so naša namenska orodja z enim algoritmom hitrejša za pregledovanje.
Primerjava petih algoritmov
Vseh pet je enosmernih razpršilnih funkcij, razlikujejo pa se po dolžini izpisa in varnostni moči.
| Algoritem | Velikost izpisa | Varnostni status | Tipična uporaba |
|---|---|---|---|
| MD5 | 128-bitni (32 šestn. znakov) | Zlomljen — trke je mogoče izdelati | Kontrolne vsote, predpomnilniški ključi, odstranjevanje podvojitev |
| SHA-1 | 160-bitni (40 šestn. znakov) | Zlomljen — praktični napadi s trki obstajajo od 2017 | Samo združljivost s starejšimi sistemi |
| SHA-256 | 256-bitni (64 šestn. znakov) | Varen, trenutni panožni standard | Digitalni podpisi, TLS, blockchain, preverjanje celovitosti |
| SHA-384 | 384-bitni (96 šestn. znakov) | Varen, daljši izpis kot SHA-256 | Podpisi z visoko stopnjo zaupanja, nekatere nastavitve TLS/PKI |
| SHA-512 | 512-bitni (128 šestn. znakov) | Varen, tu največji izpis | Aplikacije, ki zahtevajo največjo dolžino povzetka |
Pogosti primeri uporabe
- Preverjanje, da se prenesena datoteka ujema z objavljeno kontrolno vsoto založnika, preden jo zaženeš.
- Ustvarjanje determinističnih predpomnilniških ključev ali identifikatorjev iz poljubnega besedila.
- Preverjanje, ali sta dva dokumenta ali zapisa bajtno identična, brez neposredne primerjave.
- Ustvarjanje močnejšega povzetka (SHA-384/SHA-512), kadar to posebej zahteva aplikacija.
Pogosta vprašanja
Ali lahko razpršilno vrednost dešifriram nazaj v izvirno besedilo?
Ne. Razpršanje je zasnovano kot enosmeren postopek — ni ključa in ni matematične operacije, ki bi povzetek obrnila nazaj v vnos. Strani, ki trdijo, da »dešifrirajo MD5« ali »dešifrirajo SHA-256«, v resnici iščejo po ogromni vnaprej izračunani tabeli pogostih vnosov in njihovih razpršilnih vrednosti. Če je bilo tvoje izvirno besedilo dovolj nenavadno, da ga ni v tej tabeli, ga preprosto ni mogoče obnoviti, nikomur.
Kako potem strani preverijo moje geslo, ne da bi ga shranile v navadnem besedilu?
Shranijo razpršilno vrednost tvojega gesla, ne gesla samega. Ko se prijaviš, razpršijo, kar si vtipkal, in primerjajo obe razpršilni vrednosti. Če se ujemata, sta se ujemali tudi gesli — ne da bi stran kdaj morala shraniti ali »dešifrirati« tvoje dejansko geslo.
Kateri algoritem naj uporabim?
Za namene, kjer je varnost pomembna (podpisi, potrdila, preverjanje prenosov), uporabi SHA-256 ali višje — MD5 in SHA-1 sta oba kriptografsko zlomljena in jima za varnost ne gre zaupati. Za nevarnostne namene, kot so vsote, predpomnilniški ključi ali odstranjevanje podvojenih vsebin, je MD5 še vedno v redu in hitrejši za izračun.
Zakaj dobim drugačno razpršilno vrednost kot drugo orodje za isto besedilo?
Po navadi zaradi nevidne razlike: presledek na koncu, drugačni konci vrstic (\r\n proti \n) ali drugačno kodiranje besedila. Bajtno identičen vnos vedno ustvari identično razpršilno vrednost v vsaki pravilni implementaciji.
Ali se moje besedilo pošlje na strežnik?
Ne. MD5 se izračuna z JavaScriptom, ki teče v tvojem brskalniku, SHA-1/SHA-256/SHA-384/SHA-512 pa uporabljajo vgrajeni Web Crypto API tvojega brskalnika. Nič ne zapusti tvoje naprave.
Katero razpršilno vrednost naj dejansko uporabim?
Če je od nje odvisno karkoli, povezano z varnostjo — preverjanje celovitosti datoteke, podpisi, uporabe blizu gesel — izberi SHA-256: to je standard NIST FIPS 180-4 in tisto, v čemer večina programske opreme distribuira kontrolne vsote. MD5 in SHA-1 sta sprejemljiva le za nevarnostne namene, kot so predpomnilniški ključi, odstranjevanje podvojenih vsebin ali ujemanje s starejšim sistemom, ki ju zahteva.