Hi!
Jetzt wo ich weiß, welche Funktion gemeint ist (crc32), muß ich widersprechen.
Da nur ein 32-Bit-Wert zurückgeliefert wird, ist dieser Wert nicht eindeutig.Denn es gibt sicher mehr als 4 294 967 296 verschiedene URLs...
Naja, kommt auf den Zweck an, veielleicht würde es reichen, vielleicht auch nicht. Wirklich eindeutig ist wie schon gesagt wurde nur die url an sich.
Aber was anders ;-)
Wenn Dir 32 Bit nicht reichen, wie wärs mit 128? IMHO ist ja md5 eine 128-Bit Zahl, nur als hexadezimal geschrieben, oder? Das könnte man ja umwandeln in eine Dezimalzahl:
function chksum($url) {
$zahl = md5($url);
$hex = array('0' => '0',
'1' => '1',
'2' => '2',
'3' => '3',
'4' => '4',
'5' => '5',
'6' => '6',
'7' => '7',
'8' => '8',
'9' => '9',
'A' => '10',
'B' => '11',
'C' => '12',
'D' => '13',
'E' => '14',
'F' => '15');
$len = strlen($zahl)-1;
$dec=0;
for($i=$len; $i>=0; $i--) {
$dec = bcadd($dec,bcmul($hex[$zahl{$i}], bcpow(16,$len-$i)));
}
return $dec;
}
echo chksum("http://selfhtml.teamone.de/");
sollte reichen fürs erste ;-))
Grüße
Andreas
PS: Wenn ich jetzt nicht groben Mist gerechnet habe bin ich da eigentlich recht zuversichtlich das man nicht unbedingt ganz so einfach eine SessionID erraten kann - die ja eine md5-Prüfsumme ist ;-)