Ik heb absoluut geen verstand van Javascript maar ik moet het volgende stukje code omgezet hebben naar PHP.
Ik heb nu het volgende (let aub. niet op het gebruik van andere var. namen):
Het heeft te maken met een RC4 encryptie, waarbij de JS versie een 32char HEX resultaat geeft en de PHP versie een 32char ascii.
De php versie moet dus volgens de JS versie ook een HEX resultaat geven.
Iemand die mij hierin kan helpen?
Ik zal even de code uitbreiden, dan wordt het een en ander duidelijker:
JS:
code:
1
2
| cipherby = parseInt(strTexto.substr(a,2),16) ^ k; cipher = cipher + ((cipherby<16?"0":"")+cipherby.toString(16)); |
Ik heb nu het volgende (let aub. niet op het gebruik van andere var. namen):
code:
1
2
| $t = ($this->s[$i] + $this->s[$j]) % 256; $paramstr[$c] = chr(ord($paramstr[$c]) ^ $this->s[$t]); |
Het heeft te maken met een RC4 encryptie, waarbij de JS versie een 32char HEX resultaat geeft en de PHP versie een 32char ascii.
De php versie moet dus volgens de JS versie ook een HEX resultaat geven.
Iemand die mij hierin kan helpen?
Ik zal even de code uitbreiden, dan wordt het een en ander duidelijker:
JS:
code:
1
2
3
4
5
6
7
8
9
10
11
12
| for (a = 0; a < strTexto.length; a+=2) { i = (i + 1) % 256; j = (j + sbox[i]) % 256; temp = sbox[i]; sbox[i] = sbox[j]; sbox[j] = temp; k = sbox[(sbox[i] + sbox[j]) % 256]; cipherby = parseInt(strTexto.substr(a,2),16) ^ k; cipher = cipher + ((cipherby<16?"0":"")+cipherby.toString(16)); } |
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| PHP: $len= strlen($paramstr); for ($c= 0; $c < $len; $c++) { $i = ($i + 1) % 256; $j = ($j + $this->s[$i]) % 256; $t = $this->s[$i]; $this->s[$i] = $this->s[$j]; $this->s[$j] = $t; $t = ($this->s[$i] + $this->s[$j]) % 256; $paramstr[$c] = chr(ord($paramstr[$c]) ^ $this->s[$t]); } |
[ Voor 46% gewijzigd door Verwijderd op 22-10-2004 15:22 ]