Função CheckSum Google
Um dos mais utilizados pelo Google, o cálculo da soma de verificação!
Muitos desenvolvedores usam esse cálculo de soma de verificação para oferecer aos visitantes a seu serviço de visualização de sites page rank, é possível usar a API do Google google para ele, mas como o limite de 1000 visitas por dia, a função , abaixo, para resolver essa limitação problema.
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 + +)
Edi Unsign = {$ ($ 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));
Edi Unsign = $ (($ $ $ edi-edx-ESI) ^ ($ edx << 8));
Esi = unsign $ (($ esi, edi $ edx-$) ^ shr ($ edi, 13));
Edx = unsign (edx ($ $, $ esi edi-) ^ shr ($ esi, 12)) $;
Edi Unsign = $ (($ $ $ 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 = (esi ($, $ $ edi-ebx) ^ shr ($ edi, 15)) unsign $;
$ 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));
outro
{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));
outro
{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, ESI, EDI-$ $) ^ shr ($ esi, 13));
Unsign edi = $ (($ $ $ edi-esi-ebx) ^ ($ ebx << 8));
Esi = (esi ($, $ $ edi-ebx) ^ shr ($ edi, 13)) unsign $;
Ebx = unsign $ (($ ebx, ESI, EDI-$ $) ^ shr ($ esi, 12));
Edi Unsign = $ (($ $ $ edi-esi-ebx) ^ ($ ebx << 16));
Esi = (esi ($, $ $ edi-ebx) ^ shr ($ edi, 5)) unsign $;
Ebx = unsign $ (($ ebx, ESI, EDI-$ $) ^ shr ($ esi, 3));
Unsign edi = $ (($ $ $ edi-esi-ebx) ^ ($ ebx << 10));
Esi = (esi ($, $ $ edi-ebx) ^ shr ($ edi, 15)) unsign $; return $ esi;
}


















