Function CheckSum Google

Seen 1.097 times

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;
}

Leave a comment

Subscribe without commenting