phpbar.de logo

Mailinglisten-Archive

[php] Funktion zur Hexumwandlung von C nach PHP portieren

[php] Funktion zur Hexumwandlung von C nach PHP portieren

Alex Haeussel php at haeussel.net
Die Mar 18 13:12:41 CET 2008


Guten Tag,

ich muss für ein Projekt, eine vorgegebene C Funktion in PHP umsetzen. 
Da ich aber nicht gerade ein begnadeter C Programmierer bin, wäre ich für
jede Hilfe dankbar.
Hier zuerst die Funktion in C:

void sum_add(const char* str)
{
	ulong sum;
	size_t len=strlen(str);
	for (size_t i=0; i<len; i++) {
	   sum = (sum + ((ulong)str[i] * ((i+1)<<4))) % 0x10000;
	}
	return sum;
}

Ich habe das mal 1:1 übernommen. Ok nicht ganz, ich vermute mal das der
Typecast ulong schon seinen Berechtigung hat und auch was das Bitweise
verschieben angeht, bin ich mir nicht sicher ob das so tut ;)

Meine jetzige Funktion (die nicht wirklich funktioniert oder besser gesagt
kein vernünftiges Ergebnis liefert)

function sum_add($str){

	$sum	=	0;
	$len	=	strlen($str);
	
	for ($i=0; $i < $len; $i++){
		$sum	=	($sum + ($str[$i] * (($i+1)<<4))) % 0x10000;

	}
	
	return($sum);
}

Das ganze ist Teil eines Schlüsselgenerators, der Werte zu erst in einen
Hexwert umwandeln soll.

Als Beispiel was raus kommen soll, ist folgendes Anegeben (in der Doku zu
der C Funktion):
 sum_add("Dr.X"); soll liefern 0x00003120 
bzw. der Schlüssel sollte dann 00003120 sein.


Grüße und Danke im Voraus

Alexander Häussel
--- 
celsius37.com AG       
                                                          



php::bar PHP Wiki   -   Listenarchive