了解PHP代码,Google Pagerank代码

时间:2011-12-06 13:49:37

标签: php

我在网上发现了这段代码,无法记住确切的来源,但相同的代码位于不同的网站上。

private function pageRankUrl($q) {
    $host='toolbarqueries.google.com';
    $seed = "Mining PageRank is AGAINST GOOGLE'S TERMS OF SERVICE. Yes, I'm talking to you, scammer.";
    $result = 0x01020345;
    $len = strlen($q);
    for ($i=0; $i<$len; $i++) {
        $result ^= ord($seed{$i%strlen($seed)}) ^ ord($q{$i});
        $result = (($result >> 23) & 0x1ff) | $result << 9;
    }
    $ch=sprintf('8%x', $result);
    $url='http://%s/tbr?client=navclient-auto&ch=%s&features=Rank&q=info:%s';
    $url=sprintf($url,$host,$ch,$q);
    return $url;
}

代码工作正常,但我只想帮助理解它。我需要了解$ seed是什么,以及for循环中发生了什么。

1 个答案:

答案 0 :(得分:0)

在我看来,$ seed和for循环减少了查询字符串,即计算更短的版本。这可以用于哈希键或其他东西。当它计算密码哈希链时,它看起来像彩虹表中的缩减函数。