Google Checksum Pagerank Algorithm öffentlich

David Reisner

Angesehenes Mitglied
http://blog.outer-court.com/archive/2004_06_27_index.html
Einfach mal durchlesen und ansehen..haben einige progger nun doch geschafft, intern schon eine Weile bekannt, hab leider die Entwicklung voll verpasst...ist nun öffentlich und jeder der proggen kann kann sich seine eiegener programme zum illegalen abfragen des pagerank basteln, z.b. um pr einiger seiten zu überwachen etc..
Ich bin gespannt,wann,wie und ob google reagiert und was ändert..
http://www.abakus-internet-marketing.de/fo...sc/start-0.html
 
Danke für den Link, war ja schon lange bekannt. Wie hätten sonst solche Sachen wie Progle etc entstehen können. Es war nur eine Frage der Zeit, bis jemand ein fertiges Script veröffentlicht.

Neben den rechtlichen Aspekten ist die Vergänglichkeit dieses Algorithmus' ein Risiko, dass Entwicklungen, die auf ihn aufbauen, nicht wirklich zukunftsträchtig sind.

Der PR ist auch mit der Toolbar auslesbar, wieso hat Google was gegen diesen Algo?

Obschon ich diese Frage nicht schlüssig beantworte kann, bin ich mir bewusst, dass Google alle auf diesen Algo aufbauenden Scripte binnen 10 Minuten nutzlos machen könnte.

Weiss jemand gerade, wo ich mich bezüglich der rechtlichen Situation bezüglich dieser Checksum und dem Pagerank einlesen kann?
 
CODE <?php
/*
This code is released unto the public domain
*/
header("Content-Type: text/plain; charset=utf-8");
define('GOOGLE_MAGIC', 0xE6359A60);

//unsigned shift right
function zeroFill($a, $b)
{
$z = hexdec(80000000);
if ($z & $a)
{
$a = ($a>>1);
$a &= (~$z);
$a |= 0x40000000;
$a = ($a>>($b-1));
}
else
{
$a = ($a>>$b);
}
return $a;
}


function mix($a,$b,$c) {
$a -= $b; $a -= $c; $a ^= (zeroFill($c,13));
$b -= $c; $b -= $a; $b ^= ($a<<8);
$c -= $a; $c -= $b; $c ^= (zeroFill($b,13));
$a -= $b; $a -= $c; $a ^= (zeroFill($c,12));
$b -= $c; $b -= $a; $b ^= ($a<<16);
$c -= $a; $c -= $b; $c ^= (zeroFill($b,5));
$a -= $b; $a -= $c; $a ^= (zeroFill($c,3));
$b -= $c; $b -= $a; $b ^= ($a<<10);
$c -= $a; $c -= $b; $c ^= (zeroFill($b,15));

return array($a,$b,$c);
}

function GoogleCH($url, $length=null, $init=GOOGLE_MAGIC) {
if(is_null($length)) {
$length = sizeof($url);
}
$a = $b = 0x9E3779B9;
$c = $init;
$k = 0;
$len = $length;
while($len >= 12) {
$a += ($url[$k+0] +($url[$k+1]<<8) +($url[$k+2]<<16) +($url[$k+3]<<24));
$b += ($url[$k+4] +($url[$k+5]<<8) +($url[$k+6]<<16) +($url[$k+7]<<24));
$c += ($url[$k+8] +($url[$k+9]<<8) +($url[$k+10]<<16)+($url[$k+11]<<24));
$mix = mix($a,$b,$c);
$a = $mix[0]; $b = $mix[1]; $c = $mix[2];
$k += 12;
$len -= 12;
}

$c += $length;
switch($len) /* all the case statements fall through */
{
case 11: $c+=($url[$k+10]<<24);
case 10: $c+=($url[$k+9]<<16);
case 9 : $c+=($url[$k+8]<<8);
/* the first byte of c is reserved for the length */
case 8 : $b+=($url[$k+7]<<24);
case 7 : $b+=($url[$k+6]<<16);
case 6 : $b+=($url[$k+5]<<8);
case 5 : $b+=($url[$k+4]);
case 4 : $a+=($url[$k+3]<<24);
case 3 : $a+=($url[$k+2]<<16);
case 2 : $a+=($url[$k+1]<<8);
case 1 : $a+=($url[$k+0]);
/* case 0: nothing left to add */
}
$mix = mix($a,$b,$c);
/*-------------------------------------------- report the result */
return $mix[2];
}

//converts a string into an array of integers containing the numeric value of the char
function strord($string) {
for($i=0;$i<strlen($string);$i++) {
$result[$i] = ord($string{$i});
}
return $result;
}
// http://www.example.com/ - Checksum: 6540747202
$url = 'info:'.$_GET['url'];
print("url:\t{$_GET['url']}\n");
$ch = GoogleCH(strord($url));
printf("ch:\t6%u\n",$ch);
?>

http://www.google.com/search?client=navcli...bmasterforum.ch
 
Danke für den Link und Info Alain, kannst du mir den Code noch etwas erklären? Was meint Ihr wann Google da was ändern wird um tools/abfragen wieder unmögllch zu machen?
 
QUOTE kannst du mir den Code noch etwas erklären?

Och muss das sein...

Eine Checksumme ist eine injektive Funktion (D.h. Jeder Eingabewert hat genau ein Ausgabewert).

Die Erklärung zu obigem Algorithmus würde mich jetzt Stunden kosten (kein Scherz). Logische Bitweise Vergleiche sowie Shifoperationen habe ich alles mal gelernt, aber ich verstehe nicht auf Anhieb, was der Algo macht. Aber wenn ich drüberlese nimmt er alle Zeichen, schüttelt sie nach einem System durch, und dabei kommt die Checksum raus ;-)

Wenn du dann deinen PR sehen willst, musst du folgende Url eingeben:
google.com/search?client=navclient-auto&ch={chsum}&features=Rank&q=info:{url}
 
Okay Alain, dachte mir das würde net so einfach sein und ist auch net notwendig. Genau diese Info wollte ich wissen, bin interessiert zur Zeit,muss mich wohl irgendwann auch mit mathematischem aspekt von seo befassen;-)
 
Zurück
Oben