Generátor hashov

Výpočet odtlačkov MD5, SHA-1, SHA-256, SHA-384, SHA-512, SHA-3, Keccak-256, RIPEMD-160, BLAKE2b alebo BLAKE2s ľubovoľného textu alebo súboru — vhodné na kontrolné súčty, kontroly integrity a kľúče cache. Ak sa vloží očakávaný odtlačok, overí sa voči vstupu, alebo sa vloží neznámy reťazec hashu, aby sa zistilo, z ktorého algoritmu pravdepodobne pochádza. SHA-1/256/384/512 pochádzajú z natívneho WebCrypto prehliadača; ostatné sú samostatné implementácie v čistom JavaScripte, takže všetko beží lokálne. Súvisiace: Generátor náhodných čísel pre sekvencie s pevným semenom.
Beží úplne lokálne — nič sa nenahráva. Vstupy do 200 MB.
Vstup: Algoritmy:
Formát výstupu: SHA-1 je zastaraný — pre väčšinu použitia sa uprednostňuje SHA-256/512, pokiaľ nie je potrebný.
Riadky odtlačkov majú tvar „ALGORITMUS  hash“, takže ich možno kopírovať do poznámok k vydaniu alebo manifestov sťahovania.
Vloží sa odtlačok, ktorý poskytla stránka na sťahovanie alebo manifest. Nástroj toleruje veľké a malé písmená, medzery, dvojbodky, prefixy v štýle sha256=, obaly v štýle MD5 (file.exe) = a viacriadkový výstup md5sum, potom ho porovná s algoritmami zaškrtnutými vyššie.
Vloží sa neznámy reťazec hashu. Nástroj prečíta jeho dĺžku, znakovú sadu a predpony a vypíše algoritmy, ktoré ho mohli vytvoriť — od obyčajného hexadecimálneho odtlačku až po heslové hashe v štýle PHC, ako $2b$… alebo $argon2id$….
Výber algoritmu:
SHA-256 je rozumná predvolená voľba pre overovanie integrity dnes. SHA-512 je silnejší a beží rýchlejšie na 64-bitovom hardvéri za cenu dlhšieho výstupu; SHA-384 je stredná voľba, keď je potrebný odtlačok SHA-2 so skrátenou dĺžkou. SHA-3 je nezávisle navrhnutý štandard NIST (nie upgrade SHA-2) a je štandardnou odpoveďou, keď sa chce algoritmus bez spoločného pôvodu so SHA-2; Keccak-256 je predštandardný variant, ktorý používa Ethereum a niekoľko ďalších systémov, a líši sa od SHA3-256 jediným bajtom vycpávania. BLAKE2b/BLAKE2s sú rýchle moderné hashe navrhnuté pre softvér; RIPEMD-160 je staršie riešenie, ktoré sa stále používa v kontextoch Bitcoin a OpenPGP. SHA-1 a MD5 sú kryptograficky prelomené pre protivnícke vstupy, ale zostávajú správne a široko používané na deduplikáciu, staré systémy a nepriateľské kontrolné súčty — nikdy sa nepoužívajú tam, kde si útočník môže vybrať obsah. Žiaden hash dnes nie je „odolný voči kvantovým počítačom“ v zmysle, v akom kvantové počítače ohrozujú podpisy a výmenu kľúčov — Groverov algoritmus iba polovicu účinnej dĺžky hashu, takže SHA-256 už pohodlne leží nad praktickou hranicou. Hashe sú deterministické: ten istý bajt vždy dá ten istý odtlačok, čo je presne to, čo ich robí užitočnými na overenie, že sťahovanie alebo konfiguračný súbor je neporušený.
Hľadáte čínsky národný hash?
SM3 (GB/T 32905-2016), odtlačok predpísaný v čínskej komerčnej kryptografii, nie je súčasťou tejto stránky — má vlastný nástroj s podporou HMAC-SM3 na stránke Generátor hashu SM3, spolu so zvyškom sady SM: SM4 (blokové šifrovanie), SM2 (podpisy a šifrovanie) a SM9 (kryptografia založená na identite).
Generátor hashov — každý algoritmus vysvetlený od začiatku
Jednou vetou: kryptografická hašovacia funkcia je jednosmerný mixér — vezme ľubovoľný počet bajtov a stlačí ich do odtlačku pevnej dĺžky tak, že ten istý vstup vždy dá ten istý odtlačok, pričom z odtlačku nemožno zrekonštruovať vstup. Táto stránka spúšťa jedenásť takýchto funkcií výlučne vo vnútri karty prehliadača.

Každý algoritmus nižšie je vysvetlený v rovnakých štyroch krokoch: čo to je prostými slovami, intuícia o tom, ako funguje bez akýchkoľvek vzorcov, či by sa dnes mal stále používať a chyby, ktoré s ním ľudia najčastejšie robia.

MD5

Čo to je. MD5 (1992) stlačí ľubovoľný vstup do odtlačku s 128 bitmi (32 hexadecimálnych znakov). Navrhnutý bol tak, aby bol rýchly na počítačoch 90. rokov, a je to tak — práve preto je stále všade: stránky na sťahovanie softvéru, cache na deduplikáciu súborov, staré databázové kľúče.

Ako to funguje intuitívne. Vstup sa rozreže na bloky po 64 bajtoch. Každý blok sa štyrikrát premieša do 128-bitového prebiehajúceho stavu (štyri mierne odlišné kolá miešania) a po poslednom bloku sa stav vypíše ako odtlačok. Miešanie je zložené zo sčítania, rotácií a vyhľadávania v tabuľkách — vtedy lacné, dnes tiež lacné.

Malo by sa použiť? Pri kontrolných súčtoch, kde sa nikto nesnaží podvádzať — zistenie poškodeného sťahovania, hľadanie duplicitných súborov — áno, stále spoľahlivo hlási poškodenie. Pri čomkoľvek protivníckom nie: od roku 2004 môžu výskumníci v priebehu sekúnd vytvoriť dva rôzne súbory s rovnakým MD5 a skutočné sfalšovanie certifikátov pomocou kolízií MD5 sa stalo v roku 2008. Je to skôr sériové číslo než zámok.

Časté chyby. Používanie MD5 na heslá (príliš rýchly — na to, čo tam patrí, slúži Generátor hashov hesiel); dôverovanie súboru, pretože „MD5 sa zhoduje“, keď útočník zverejnil aj MD5; a vloženie celého riadku MD5 (file) = hash namiesto samotného hashu — pole Overiť vyššie prijíma oboje.

SHA-1

Čo to je. SHA-1 (1995, NSA) vytvára odtlačok s 160 bitmi (40 hexadecimálnych znakov). Dvadsať rokov bol predvoleným hashom integrity pre Git, certifikáty TLS a podpisy PGP.

Ako to funguje intuitívne. Rovnaký rodinný recept ako MD5, ale s 160-bitovým stavom, 80 kolami miešania na blok po 64 bajtoch a širšou množinou operácií. Dodatočné kolá mali sťažiť spätné inžinierstvo miešača.

Malo by sa použiť? Nie, pri čomkoľvek protivníckom. Teoretické prelomenie sa stalo prakticky použiteľným v roku 2017, keď Google vytvoril dva rôzne PDF s identickými hodnotami SHA-1 (útok SHAttered, asi 6 500 rokov procesorového času). Git stále ukladá objekty pod SHA-1, ale berie ho iba ako identifikátor a odvtedy pridal detekciu kolízií. Pre novú prácu sa používa SHA-256 alebo SHA-3.

Časté chyby. Presvedčenie, že 160 bitov „je stále dosť dlhé“ — prelomenie sa týka vnútornej štruktúry, nie hrubej sily; a zamieňanie RIPEMD-160 s SHA-1, pretože obe majú 40 hexadecimálnych znakov (pole identifikátora ich rozlišuje).

SHA-2: SHA-256, SHA-384 a SHA-512

Čo to je. Rodina SHA-2 (2001, NSA) je pracovným koňom moderného overovania integrity. SHA-256 dáva 256 bitov (64 hexadecimálnych znakov), SHA-512 dáva 512 bitov a SHA-384 je SHA-512 s výsledkom skráteným na 384 bitov — užitočné, keď protokol vyžaduje kratšiu značku.

Ako to funguje intuitívne. Bloky po 64 bajtoch (alebo 128 bajtov pri 512-bitových variantoch) sa cez 64 (alebo 80) kôl krokov sčítania, rotácie a miešania zložia do stavu s 8 slovami. Na rozdiel od MD5 plán najprv roztiahne každý blok do rozšíreného buffera, a práve to porazilo typ útoku, ktorý lámal MD5 a SHA-1. Zaujímavosť: na 64-bitových procesoroch je SHA-512 rýchlejší než SHA-256, pretože spracováva dvojnásobok dát na kolo 64-bitovou aritmetikou.

Malo by sa použiť? Áno — SHA-256 je dnes predvolená odpoveď pre kontrolné súčty súborov, podpisovanie kódu a odtlačky certifikátov, bez známeho praktického prelomenia po dvoch desaťročiach analýzy. SHA-384/512 sa vyberá vtedy, keď sa chce väčšia rezerva alebo keď ich platforma spúšťa rýchlejšie.

Časté chyby. Používanie samotného SHA-256 na heslá — je to rýchly hash a rýchlosť je tam nepriateľ (vhodné sú bcrypt/scrypt/Argon2id); a zamieňanie dĺžky odtlačku so silou pri nastaveniach odolnosti voči kolíziám — dĺžka iba nastavuje strop.

SHA-3 (SHA3-256 / SHA3-512) a Keccak-256

Čo to je. SHA-3 (2015, štandardizovaný z návrhu Keccak Bertonim, Daemenom, Peetersom a Van Asscheom) je tretí hashový štandard NIST. Nemá nič spoločné s vnútornými časťami SHA-2 — bol vybraný práve preto, aby bol nezávislou záložou, keby SHA-2 niekedy padol.

Ako to funguje intuitívne. Namiesto pretláčania blokov cez malý stav Keccak opakovane „nasiakne a vyždíma“: vstup sa po bitoch vstrebáva do špongie 5×5×64 bitov, celá špongia sa premieša pevnou permutáciou (24 kôl bitových operácií nad celým stavom) a bity odtlačku sa potom vyždímajú. Obraz špongie je celá myšlienka: kapacitné bity sa nikdy nevypisujú a práve oni robia funkciu jednosmernou.

Keccak-256 verzus SHA3-256. Líšia sa presne jedným bajtom vycpávania. Pôvodný návrh tímu Keccak vyplnil posledný blok bajtom 0x01; NIST zmenil štandardné vycpávanie na 0x06 (oddelenie domén, ktoré používa Keccak z éry SHA-2). Ethereum prevzal pôvodné vycpávanie, takže jeho „keccak256“ sa pre každý vstup líši od štandardného SHA3-256. Táto stránka ponúka oba, zaškrtávajú sa oddelene.

Malo by sa použiť? Áno — buď ako primárna voľba, keď politika chce algoritmus mimo SHA-2, alebo všade tam, kde ekosystém už tento algoritmus používa. Časté chyby: predpoklad, že SHA3-256 a Keccak-256 sú zameniteľné (nie sú — dva riadky, ktoré táto stránka vytvorí pre ten istý vstup, sa porovnajú); a predpoklad, že „SHA-3“ nahrádza SHA-2 — obe sú bezpečné, SHA-2 zostáva širšie nasadený.

RIPEMD-160

Čo to je. RIPEMD-160 (1996, konzorcium RIPE európskych akademikov, posilnený Dobbertinom, Bosselaersom a Preneelom) vydáva 160 bitov. Je to čisto európsky návrh, zámerne nezávislý od rodiny SHA navrhnutej NSA.

Ako to funguje intuitívne. Každý blok po 64 bajtoch sa spracuje dvoma paralelnými líniami po 80 kolách s rôznymi konštantami a veľkosťami rotácií; na konci sa obe línie a starý stav skombinujú. Štruktúra dvoch stôp bola spôsob, akým návrhári odolávali diferenciálnym útokom, ktoré lámali iné hashe z 90. rokov.

Malo by sa použiť? V praxi prežíva hlavne v iných systémoch: adresy Bitcoin hashujú verejné kľúče pomocou RIPEMD-160(SHA-256(pk)), staršie kľúče OpenPGP ho ponúkajú ako voľbu hashu a je tradičným hashom pre časti BitTorrent v1 spolu s SHA-1. Nemá praktický útok na kolízie, ale veľkosť 160 bitov mu dáva najmenšiu bezpečnostnú rezervu na tejto stránke. Pre nové samostatné použitie sa uprednostňuje SHA-256 alebo SHA-3.

Časté chyby. Presvedčenie, že dve paralelné línie ho robia „dvojnásobne silným“ — veľkosť výstupu je to, čo obmedzuje odolnosť voči kolíziám; a zamieňanie s SHA-1 (rovnaká dĺžka 40 hexadecimálnych znakov; pole identifikátora vyššie uvádza obe možnosti vedľa seba).

BLAKE2b-512 a BLAKE2s-256

Čo to je. BLAKE2 (2013, Aumasson, Neves, Wilcox-O’Hearn a Winnerlein) je hash navrhnutý pre rýchlosť softvéru: BLAKE2b cieľuje na 64-bitové platformy s výstupom až 512 bitov, BLAKE2s cieľuje na 32-bitové platformy s výstupom až 256 bitov.

Ako to funguje intuitívne. Vychádza zo finalistu súťaže SHA-3 BLAKE, ktorého jadrom je kľúčová permutácia prevzatá z prúdovej šifry ChaCha: matica 4×4 slov sa premieša striedavým zmiešavaním stĺpcov a diagonál — ako keď sa mriežka najprv premieša zhora nadol a potom pozdĺž diagonál — a to 12 (BLAKE2b) alebo 10 (BLAKE2s) kôl na každý blok. Pretože tieto kroky sa pekne zobrazujú na inštrukcie procesora, BLAKE2 je často rýchlejší než MD5 a ponúka bezpečnosť porovnateľnú s SHA-3.

Malo by sa použiť? Áno — ide o plne moderný, neprelomený návrh, obľúbený v softvéri citlivom na výkon (integrita balíkov v niektorých ekosystémoch, úložiská adresované obsahom, deduplikácia zálohovania) a ako rýchly MAC. Na tejto stránke dáva BLAKE2b-512 najdlhšie odtlačky a BLAKE2s-256 kompaktnú moderná voľbu.

Časté chyby. Myslenie, že „rýchlejšie musí znamenať slabšie“ — BLAKE2 je rýchlejší svojím návrhom, nie skracovaním rohov; a neuvedomenie si, že BLAKE2 prijíma aj kľúč (čím sa stáva MAC) alebo personalizačný reťazec — táto stránka ho vždy používa v čistom režime bez kľúča.

Čítanie polí Overiť a Identifikovať

Overiť. Pole overenia normalizuje všetko, čo sa vloží — veľké alebo malé písmená, dvojbodky po dvoch číslicach, prefix sha256=, obal v štýle BSD SHA256 (file) = hash, riadok GNU md5sum s názvom súboru za hashom, zatúlané \r\n — potom prepočíta každý zaškrtnutý algoritmus nad aktuálnym vstupom (text alebo zvolený súbor) a uvedie každý algoritmus, ktorý sa zhoduje. Zelená zhoda znamená „tieto bajty sú presne to, čo vydavateľ hashoval“; červená znamená, že žiadny zaškrtnutý algoritmus to nevytvoril — možno treba zaškrtnúť viac algoritmov alebo skontrolovať, či vložený text nebol orezaný.

Identifikovať. Pole identifikátora nič nehashuje; číta tvar reťazca. Dĺžka zužuje kandidátov: 32 hexadecimálnych znakov môže byť MD5, 40 môže byť SHA-1 alebo RIPEMD-160, 64 môže byť SHA-256 / SHA3-256 / Keccak-256 / BLAKE2s-256, 96 SHA-384, 128 SHA-512 / SHA3-512 / BLAKE2b-512. Predpony odhaľujú heslové hashe ($2a$/$2b$/$2y$ bcrypt, $argon2id$, $scrypt$, $6$ sha512crypt, $1$ MD5-crypt) — to je iný druh (súvisiace: Generátor hashov hesiel) a táto stránka ich zámerne nevypočítava. Reťazec s +, / a =, ktorého dĺžka je násobkom 4, je pravdepodobnejšie dáta zakódované v Base64 než hexadecimálny odtlačok; nástroj ho dekóduje a uvedie dĺžku v bajtoch, ktorá by zodpovedala.

Čo dokáže a čo nedokáže identifikácia. Dĺžka a znaková sada sú odtlačky formátu, nie dôkaz algoritmu: dva reťazce so 64 hexadecimálnymi znakmi môžu pochádzať z SHA-256 alebo zo skráteného SHA-512. Identifikátor zoraďuje možnosti; pole Overiť je to, ktoré dokáže, aké algoritmus sa skutočne zhodujú s bajtmi vstupu.

Všetkých jedenásť na jednom mieste
Algoritmus Štiepenie Vymyslené Odtlačok „The quick brown fox jumps over the lazy dog“
MD5128 bitov19929e107d9d372bb6826bd81d3542a419d6
SHA-1160 bitov19952fd4e1c67a2d28fced849ee1bb76e7391b93eb12
SHA-256256 bitov2001d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592
SHA-384384 bitov2001ca737f1014a48f4c0b6dd43cb177b0afd9e5169367544c494011e3317dbf9a509cb1e5dc1e85a941bbee3d7f2afbc9b1
SHA-512512 bitov200107e547d9586f6a73f73fbac0435ed76951218fb7d0c8d788a309d785436bbb642e93a252a954f23912547d1e8a3b5ed6e1bfd7097821233fa0538f3db854fee6
SHA3-256256 bitov201569070dda01975c8c120c3aada1b282394e7f032fa9cf32f4cb2259a0897dfc04
SHA3-512512 bitov201501dedd5de4ef14642445ba5f5b97c15e47b9ad931326e4b0727cd94cefc44fff23f07bf543139939b49128caf436dc1bdee54fcb24023a08d9403f9b4bf0d450
Keccak-256256 bitovpred rokom 20154d741b6f1eb29cb2a9b9911c82f56fa8d73b04959d3d9d222895df6c0b28aa15
RIPEMD-160160 bitov199637f332f68db77bd9d7edd4969571ad671cf9dd3b
BLAKE2b-512512 bitov2013a8add4bdddfd93e4877d2746e62817b116364a1fa7bc148d95090bc7333b3673f82401cf7aa2e4cb1ecd90296e3f14cb5413f8ed77be73045b13914cdcd6a918
BLAKE2s-256256 bitov2013606beeec743ccbeff6cbcdf5d5302aa855c256c29b88c8ed331ea1a6bf3c8812

Každý odtlačok v tabuľke vyššie vytvárajú motory priamo na tejto stránke — zaškrtnú sa všetky algoritmy, klikne sa na Ukážka a porovnajú sa. Riadky SHA-3, Keccak, RIPEMD-160 a BLAKE2 pochádzajú z vlastného jadra crypto-shared.js, ktoré používajú všetky kryptografické nástroje tejto stránky.

FAQ

Ktorému poľu dôverovať pri sťahovaní? Poľu Overiť so zaškrtnutým SHA-256 — väčšina vydavateľov dnes podpisuje SHA-256 alebo SHA-512. Pole Identifikovať iba pomenúva kandidátov; nikdy nič nedokazuje o súbore.

Prečo je Keccak-256 v zozname vôbec? Pretože Ethereum, Swarm a niektoré účtovné systémy štandardizovali predštandardné vycpávanie. Ak sa overuje keccak256 z Etherea, musí sa použiť tento riadok, nie SHA3-256.

Môžu dva rôzne vstupy zdieľať odtlačok? Teoreticky áno — nekonečne veľa vstupov sa zobrazuje do konečnej množiny odtlačkov (princíp holubníka). Prakticky je nájdenie takého páru pred tepelnou smrťou vesmíru tým, čo znamená „odolnosť voči kolíziám“, a každý vyššie uvedený algoritmus okrem MD5 a SHA-1 stále obstojí.

Sú hashe šifrovanie? Nie. Šifrovanie je vratné pomocou kľúča; hash je jednosmerný mixér. Nič na tejto stránke sa nedá „dešifrovať“ späť na text — a to je vlastnosť, nie obmedzenie.