Function CheckSum Google
One of the most used by google, the checksum calculation!
Many developers use this checksum calculation to offer visitors to their websites service display page-rank, it is possible to use google API google for it but as the limit of 1000 requests per day, the function , below, to resolve this problem limitation.
GoogleCSum ($ s, $ key) {
$ V4 = $ len = strlen ($ s) $ esi = $ key, $ ebx = edi = $ 0x9E3779B9; $ p = 0;
if ($ len> = 12)
for ($ i = 0; $ i <floor ($ len/12) $ i + +)
Unsign edi = {$ ($ edi + ord ($ s [$ p +4]) + (ord ($ s [$ p +5]) << 8) + (ord ($ s [$ p 6]) << 16) + (ord ($ s [$ p 7]) << 24));
$ Esi = unsign ($ esi + ord ($ s [$ p +8]) + (ord ($ s [$ p 9]) << 8) + (ord ($ s [$ 10 p]) < <16) + (ord ($ s [$ p 11]) << 24));
Edx = unsign $ (($ ebx + ord ($ s [$ p 0]) + (ord ($ s [$ p +1]) << 8) + (ord ($ s [$ p 2]) << 16) + (ord ($ s [$ p +3]) << 24) - $ $-edi esi) ^ shr ($ esi, 13));
Unsign edi = $ (($ edi-$ $ edx esi-) ^ ($ edx << 8));
Esi = unsign $ (($ esi, $ edi edx-$) ^ shr ($ edi, 13));
Edx = unsign $ (($ $ edx, $ esi edi-) ^ shr ($ esi, 12));
Unsign edi = $ (($ edi-$ $ edx esi-) ^ ($ edx << 16));
Esi = unsign $ (($ esi, $ edi edx-$) ^ shr ($ edi, 5));
Edx = unsign $ (($ $ edx, $ esi edi-) ^ shr ($ esi, 3)); $ $ ebx = edx;
Unsign edi = $ (($ edi-$ $-esi ebx) ^ ($ ebx << 10));
Esi = unsign $ (($ esi, $ edi-$ ebx) ^ shr ($ edi, 15));
$ V4-= 12; $ p + = 12;}
$ Esi = unsign ($ esi + $ len);
if ($ v4> = 11) $ esi = unsign ($ esi + (ord ($ s [$ p 10]) << 24));
if ($ v4> = 10) $ esi = unsign ($ esi + (ord ($ s [$ p 9]) << 16));
if ($ v4> = 9) $ esi = unsign ($ esi + (ord ($ s [$ p +8]) << 8));
if ($ v4> = 8) = $ edi unsign ($ edi + ord ($ s [$ p +4]) + (ord ($ s [$ p +5]) << 8) + (ord ($ s [$ p 6]) << 16) + (ord ($ s [$ p 7]) << 24));
else
{If ($ v4> = 7) = $ edi unsign ($ edi + (ord ($ s [$ p 6]) << 16));
if ($ v4> = 6) = $ edi unsign ($ edi + (ord ($ s [$ p +5]) << 8));
if ($ v4> = 5) = $ edi unsign ($ edi + ord ($ s [$ p +4]));}
if ($ v4> = 4) $ ebx = unsign ($ ebx + ord ($ s [$ p 0]) + (ord ($ s [$ p +1]) << 8) + (ord ($ s [$ p +2]) << 16) + (ord ($ s [$ p +3]) << 24));
else
{If ($ v4> = 3) $ ebx = unsign ($ ebx + (ord ($ s [$ p +2]) << 16));
if ($ v4> = 2) $ ebx = unsign ($ ebx + (ord ($ s [$ p +1]) << 8));
if ($ v4> = 1) $ ebx = unsign ($ ebx + ord ($ s [$ p 0]));}
Ebx = unsign $ (($ ebx, edi-$ $ esi) ^ shr ($ esi, 13));
Unsign edi = $ (($ edi-$ $-esi ebx) ^ ($ ebx << 8));
Esi = unsign $ (($ esi, $ edi-$ ebx) ^ shr ($ edi, 13));
Ebx = unsign $ (($ ebx, edi-$ $ esi) ^ shr ($ esi, 12));
Unsign edi = $ (($ edi-$ $-esi ebx) ^ ($ ebx << 16));
Esi = unsign $ (($ esi, $ edi-$ ebx) ^ shr ($ edi, 5));
Ebx = unsign $ (($ ebx, edi-$ $ esi) ^ shr ($ esi, 3));
Unsign edi = $ (($ edi-$ $-esi ebx) ^ ($ ebx << 10));
Esi = unsign $ (($ esi, $ edi-$ ebx) ^ shr ($ edi, 15)); return $ esi;
}


















