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 15:37:53 CET 2008


Hi Norbert,

>>könntest Du bitte zwei oder drei signifikante Wertepaare posten?
>>Dann kann jeder selbst sofort nachprüfen, ob seine Idee passt ...

Aber gerne doch ;)
Ich habe selbst gerade gesehen, das ich einen Fehler gemacht habe. Die
Funktion sum_add bekommt noch eine reference übergeben. Meine
C-Codeschnipsel waren aus einer Mail. Hier noch mal das Original aus der
Doku und das dazugehörige Beispiel:

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

The following section shows the step-by-step results of the key
calculations:
ulong sum = 0;
sum_add(&sum, ""); // "Stop" param, sum is 0 after this operation
sum_add(&sum, ""); // "Scope" param, sum is 0 after this operation
sum_add(&sum, "Dr.X"); // User id, sum is 0x00003120
sum_add(&sum, "1065507963"); // Time stamp, sum is 0x0000e6f0
sum_add(&sum, "12121212-1212"); // Patient id, sum is 0x0000fe20
sum_add(&sum, "1234^2345"); // Accession numbers, sum is 0x00009c40
sum_add(&sum, "001^001"); // Exam numbers, sum is 0x0000fc60
sum_add(&sum, "test"); // System password, sum is 0x000042d0

Im Grunde ist es zwar schon so wie ich es auch vorher gschrieben habe, nur
die Wertepaare machen nur dann Sinn wenn man auch den vorherigen Wert mit
übergibt bzw. die Reference.
Das nur der Vollständigkeit halber.

Grüße und Danke für die Mühe.

Alex Häussel




php::bar PHP Wiki   -   Listenarchive