Función de control Google

Visto 1.101 veces

Uno de los más utilizados por Google, el cálculo de suma de comprobación!

Muchos desarrolladores utilizan este cálculo de suma de comprobación para ofrecer a los visitantes de su servicio de visualización de la página web de rango, es posible utilizar la API de Google google para ello, pero como el límite de 1.000 solicitudes por día, la función , a continuación, para resolver este problema limitación.

GoogleCSum ($ s, $ clave) {
V4 = $ $ len = strlen ($ s) $ esi = $ key, $ ebx = edición = $ 0x9E3779B9, $ p = 0;
if ($ len> = 12)
for ($ i = 0; $ i <piso ($ len/12) $ i + +)
Unsign edición = {$ ($ 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 [$ 8 p]) + (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 edición = $ (($ $ $ edi-ESI-EDX) ^ ($ edx << 8));
Esi = unsign $ (($ esi, edi-EDX $ $) ^ SHR ($ edición, 13));
Edx = unsign $ (($ $ edx, esi edi-$) ^ SHR ($ esi, 12));
Unsign edición = $ (($ $ $ edi-ESI-EDX) ^ ($ edx << 16));
Esi = unsign $ (($ esi, edi-EDX $ $) ^ SHR ($ EDI, 5));
Edx = unsign $ (($ $ edx, esi edi-$) ^ SHR ($ esi, 3)); $ $ ebx = edx;
Unsign edición = $ (($ $ $-EDI-esi ebx) ^ ($ ebx << 10));
Esi = (ESI ($, $ $ ebx edi-) ^ SHR ($ edición, 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 [$ 8 p]) << 8));
if ($ v4> = 8) = $ unsign EDI (EDI $ + ord ($ s [p $ 4]) + (ord ($ s [p $ 5]) << 8) + (ord ($ s [p $ 6]) << 16) + (ord ($ s [p $ 7]) << 24));
más
{If ($ v4> = 7) = $ unsign EDI (EDI $ + (ord ($ s [p $ 6]) << 16));
if ($ v4> = 6) = $ unsign EDI (EDI $ + (ord ($ s [p $ 5]) << 8));
if ($ v4> = 5) = $ unsign EDI (EDI $ + ord ($ s [p $ 4]));}
if ($ v4> = 4) $ ebx = unsign ($ ebx + ord ($ s [p $ 0]) + (ord ($ s [$ p +1]) << 8) + (ord ($ s [$ 2 p]) << 16) + (ord ($ s [$ p 3]) << 24));
más
{If ($ v4> = 3) = $ ebx unsign ($ ebx + (ord ($ s [$ 2 p]) << 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 edición = $ (($ $ $-EDI-esi ebx) ^ ($ ebx << 8));
Esi = (ESI ($, $ $ ebx edi-) ^ SHR ($ edición, 13)) unsign $;
Ebx = unsign $ (($ ebx, edi-$ $ esi) ^ SHR ($ esi, 12));
Edición unsign = $ (($ $ $-EDI-esi ebx) ^ ($ ebx << 16));
Esi = (ESI ($, $ $ ebx edi-) ^ SHR ($ EDI, 5)) unsign $;
Ebx = unsign $ (($ ebx, edi-$ $ esi) ^ SHR ($ esi, 3));
Unsign edición = $ (($ $ $-EDI-esi ebx) ^ ($ ebx << 10));
Esi = (ESI ($, $ $ ebx edi-) ^ SHR ($ edición, 15)) $ unsign; return $ esi;
}

Deja un comentario

Suscribirse sin comentar