Hash
Generátor hashů
Generujte hashe MD5, SHA-1, SHA-256 a SHA-512.
O hashování
Hashovací funkce přijme libovolný vstup a vytvoří z něj otisk pevné délky. Stejný vstup vždy vytvoří stejný hash, ale hash nelze zpětně převést na původní data, a i změna jediného znaku ve vstupu zcela změní výstup.
Hash textu závisí na jeho přesných bajtech, ne jen na znacích — stejný řetězec zakódovaný jako UTF-8 oproti UTF-16 vytvoří dva zcela odlišné hashe, ačkoli by člověk čtoucí obojí viděl identický text. Proto nástroje pro hashování souborů pracují se surovými bajty místo s „textem“: tam není žádná nejednoznačnost k řešení. Když zde hashujete vložený text, nejprve se zakóduje jako UTF-8, což je také to, co předpokládá téměř každý kontrolní součet, se kterým jej budete porovnávat, ale stojí za to vědět, že tento předpoklad existuje.
Kde se s tím setkáte
- Ověření, že stažený soubor odpovídá kontrolnímu součtu zveřejněnému vydavatelem
- Porovnání dvou souborů na shodu bez porovnávání celého jejich obsahu
- Generování klíčů pro cache-busting nebo identifikátorů adresovaných obsahem
- Kontrola integrity dat po přenosu nebo zálohování
Často kladené otázky
Jsou MD5 nebo SHA-1 bezpečné pro hesla?
Ne. Oba jsou pro bezpečnostní účely prolomené — místo nich použijte vyhrazený algoritmus pro hashování hesel, jako bcrypt nebo Argon2. Toto jsou obecné hashe, ne hashe pro hesla.
Který algoritmus bych měl použít?
Pro kontrolu integrity je aktuálním standardem SHA-256 nebo SHA-512. MD5 a SHA-1 jsou stále běžné pro ověřování starších kontrolních součtů, ale neměly by se spoléhat na bezpečnost.
Ukládají se mé nahrané soubory?
Ne. Soubory se hashují na serveru pouze pro tento jeden požadavek a poté se odstraní.
Proč hashování stejného textu dává jinde jiný výsledek?
Nejčastější příčinou je znakové kódování: text vypadající identicky vytváří jinou posloupnost bajtů, a tedy jiný hash, podle toho, zda je zakódovaný jako UTF-8, UTF-16 nebo jinak. Také koncové bílé znaky nebo jiná konvence konce řádku (\n oproti \r\n) mění bajty neviditelně. Tento nástroj hashuje vložený text jako UTF-8; pokud vaše porovnávací hodnota pochází z jiného kódování, je nesoulad očekávaný, ne chyba.