Utilia

Generator zgoščenih vrednosti (hash)

Ustvari zgoščene vrednosti MD5, SHA-1, SHA-256 in SHA-512 za besedilo ali datoteke poljubne velikosti in preveri kontrolne vsote. Deluje v brskalniku.

Zgostitev
Besedilo je kodirano v UTF-8.
Algoritmi

Kako uporabljati generator zgoščenih vrednosti

  1. Pod Zgostitev izberi Besedilo ali Datoteke.
  2. Besedilo vnesi ali prilepi v Besedilo za zgostitev. Zgoščene vrednosti se osvežujejo med tipkanjem; gumb Zgostitev jih po potrebi preračuna.
  3. Pri datotekah spusti eno ali več datotek v območje za spuščanje ali klikni nanj in jih izberi. Pri velikih datotekah se prikaže vrstica napredka z gumbom Prekliči.
  4. Izberi Algoritmi, ki jih potrebuješ (MD5, SHA-1, SHA-256, SHA-512), in Izhodni format: šestnajstiško z malimi črkami, šestnajstiško z velikimi črkami ali Base64.
  5. Če želiš preveriti prenos, prilepi objavljeno kontrolno vsoto v Primerjaj s pričakovano zgoščeno vrednostjo (neobvezno). Orodje pove, kateri algoritem se ujema, ali da se ne ujema nobeden.

Kaj je zgoščena vrednost?

Kriptografska zgoščevalna funkcija poljuben vnos, naj bo beseda ali 50 GB velika slika diska, pretvori v kratek prstni odtis stalne velikosti. Enak vnos vedno da enako zgoščeno vrednost, sprememba enega samega bita vnosa pa rezultat popolnoma spremeni. Zgoščene vrednosti ni mogoče obrniti, da bi dobil vnos nazaj.

Algoritem Velikost izhoda Dolžina v šestnajstiškem zapisu Stanje
MD5 128 bitov 32 znakov Zlomljen: samo kontrolne vsote
SHA-1 160 bitov 40 znakov Zlomljen: trki dokazani leta 2017
SHA-256 256 bitov 64 znakov Varen, trenutni standard
SHA-512 512 bitov 128 znakov Varen, na 64-bitnih procesorjih pogosto hitrejši

Na primer: zgoščena vrednost SHA-256 niza abc je ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.

Preverjanje prenosa

Založniki programske opreme pogosto ob datotekah navedejo kontrolno vsoto SHA-256. Po prenosu odpri način Datoteke, spusti datoteko in prilepi objavljeno vrednost v polje za primerjavo. Ujemanje dokazuje, da datoteka med prenosom ni bila poškodovana in da je enaka tisti, ki jo je založnik zgostil. Ne dokazuje, da je založnik vreden zaupanja. Za to mora sama kontrolna vsota izvirati iz zaupanja vrednega vira, na primer s spletnega mesta HTTPS ali iz podpisane izdaje.

Kako se obravnavajo velike datoteke

Datoteke se preberejo lokalno in se nikoli ne naložijo na strežnik. Datoteke do 64 MB se zgostijo v enem prehodu z vgrajenim vmesnikom Web Crypto API tvojega brskalnika. Večje datoteke se berejo v kosih po 4 MB in se podajajo inkrementalnim zgoščevalnim funkcijam, zato poraba pomnilnika ostane enakomerna in je mogoče zgostiti datoteke več gigabajtov. Na običajnem računalniku pričakuj nekaj sto megabajtov na sekundo za SHA-256.

Besedilo, kodiranja in konci vrstic

Zgoščena vrednost se izračuna iz bajtov, ne iz znakov. Orodje besedilo kodira v UTF-8, kar je standard v spletu in večini programskih jezikov. Če drugje dobiš drugačen rezultat, poišči skrite razlike: končni novi red (echo "abc" | sha256sum zgosti abc\n; uporabi echo -n), konce vrstic Windows (\r\n) ali drugo kodiranje, na primer UTF-16.

Pogosta vprašanja

Ali lahko za shranjevanje gesel uporabim MD5 ali SHA-1?

Ne, pa tudi golega SHA-256 ne. Te funkcije so zasnovane tako, da so hitre, zato lahko napadalec preizkusi milijarde ugibanj na sekundo. Gesla potrebujejo počasen algoritem s soljo, kot so Argon2, bcrypt ali scrypt.

Ali je MD5 še uporaben?

Da, za zaznavanje nenamerne poškodbe, odstranjevanje podvojenih datotek ali ujemanje s starim seznamom kontrolnih vsot. Ne smeš se zanašati nanj proti namernemu ponarejanju, ker lahko vsakdo ustvari dve različni datoteki z enakim MD5.

Ali se moje datoteke naložijo na strežnik?

Ne. Datoteke prebere in zgosti tvoj brskalnik. Nič se ne pošlje na strežnik, zato lahko zgostiš zaupne dokumente.

Zakaj se moja zgoščena vrednost ne ujema s tisto iz ukazne vrstice?

Vnos je skoraj vedno drugačen: končni novi red, presledki, konci vrstic ali kodiranje besedila. Pri datotekah poskrbi, da je prenos popoln. En sam manjkajoč bajt da popolnoma drugačno zgoščeno vrednost.

Kakšna je razlika med šestnajstiškim izhodom in izhodom Base64?

To sta dva načina zapisa istih bajtov. Šestnajstiški zapis je običajen format za kontrolne vsote; Base64 je krajši in se uporablja na primer v atributih Subresource Integrity (sha256-…). Polje za primerjavo sprejme oba.