Kalkulačka hash kódu Adler-32
Publikované: 17. februára 2025 o 18:02:59 UTC
Posledná aktualizácia: 12. januára 2026 o 9:14:10 UTC
Adler-32 Hash Code Calculator
Hašovacia funkcia Adler-32 je algoritmus kontrolného súčtu, ktorý je jednoduchý, rýchly a často používaný na overovanie integrity údajov. Navrhol ho Mark Adler a bežne sa používa v aplikáciách ako zlib na kompresiu údajov. Na rozdiel od kryptografických hašovacích funkcií (ako SHA-256) nie je Adler-32 určený na zabezpečenie, ale na rýchlu kontrolu chýb. Vypočítava 32-bitový (4 bajty) kontrolný súčet, zvyčajne reprezentovaný ako 8 hexadecimálnych znakov.
Úplné odhalenie: konkrétnu implementáciu hashovacej funkcie použitej na tejto stránke som nenapísal. Ide o štandardnú funkciu, ktorá je súčasťou programovacieho jazyka PHP. Vytvoril som len webové rozhranie, aby som ju tu pre pohodlie sprístupnil verejnosti.
O hašovacom algoritme Adler-32
Nie som matematik, ale pokúsim sa vysvetliť túto hašovaciu funkciu pomocou bežnej analógie, ktorej dúfam, že moji kolegovia nematematici porozumejú. Na rozdiel od mnohých kryptografických hašovacích funkcií je Adler32 pomerne jednoduchá kontrolná súčetová funkcia, takže by to nemalo byť až také zlé ;-)
Predstavte si, že máte vrecko s malými očíslovanými dlaždicami, z ktorých každá predstavuje písmeno alebo časť vašich údajov. Napríklad slovo „Ahoj“ má dve dlaždice: jednu pre „H“ a jednu pre „i“.
Teraz s týmito dlaždicami urobíme dve jednoduché veci:
Krok 1: Sčítajte ich (súčet A)
- Začnite číslom 1 (ako pravidlo).
- Pripočítajte číslo z každej dlaždice k tomuto súčtu.
Krok 2: Udržiavajte priebežný súčet všetkých súm (súčet B)
- Vždy, keď pridáte nové číslo dlaždice do súčtu A, pridáte aj novú hodnotu súčtu A do súčtu B.
- Je to ako skladanie mincí: pridáte jednu mincu navrch (súčet A) a potom si zapíšete novú celkovú výšku kôpky (súčet B).
Nakoniec zlepíte dva súčty dokopy a vytvoríte jedno veľké číslo. Toto veľké číslo je kontrolný súčet Adler-32.
Ďalšie čítanie
Ak sa vám tento príspevok páčil, možno sa vám budú páčiť aj tieto návrhy:
