• Adler-32 se obtine prin calcularea a două sume de control pe 16 biti A si B si
concatenarea biti lor într-un întreg pe 32 de biti. A este suma tuturor octetilor în fluxul plus unu, iar B este suma valorilor individuale ale lui A de la fiecare pas. La începutul unei algoritmului Adler-32, lista A este initializata cu 1, iar lista B cu 0. Sumele sunt efectuate modulo 65521 (cel mai mare număr prim mai mic decât 2^16=65536). Acesti octeti sunt stocate în ordine (big endian), B ocupă doi octeti cei mai semnificativi. • Unde D este șirul de octeți pentru care se calculează suma de control și n este lungimea lui D. • A = 1 + D1 + D2 + ... + Dn (mod 65521) • B = 0+(1 + D1) + (1 + D1 + D2) + ... + (1 + D1 + D2 + ... + Dn) (mod 65521)= n×D1 + (n−1)×D2 + (n−2)×D3 + ... + Dn + n (mod 65521) • Adler-32(D) = B × 65536 + A Crearea unui hash cu Adler-32 în care se va hash-a Card-037B017B
ASCII code: C-67; a-97; r-114; d-100
A B 1+67=68 0+67=67 68+97=165 67+165=232 165+114=279 232+279=511 279+100=379 511+379=890