[php] kodowanie xor

0

witam.
Mam taki kod w delphi:

function koduj(tekst: string; password: string; flag_code: boolean):string; 
// funkcja z trzema parametrami zwracająca string

var i, len_pass: integer;
tmp_str: string;
byte_in, byte_out, byte_pass: byte; //deklaracja zmiennych


begin
len_pass := Length(password); //długość klucza

for i:=1 to Length(tekst) do //pętla "obiegająca" kodowany tekst

begin

byte_in := Ord(tekst[i]); //pobranie kolejnej litery kodowanego tekstu i zamiana na bajt

byte_pass := Ord(password[i mod len_pass]); //pobranie kolejnej litery klucza i zamiana na bajt

      
if flag_code then //sprawdzenie flagi (czy ma być kodowanie czy dekodowanie)

byte_out := (byte_in + byte_pass) mod 256 //zakodowanie bajtu tekstu bajtem klucza i podzielenie tego modulo przez 256
        
else
              
byte_out := (256 + (byte_in - byte_pass)) mod 256; //rozkodowanie bajtu tekstu zakodowanego bajtem klucza...

tmp_str:= tmp_str + Chr(byte_out); 
//doklejenie roz/zakodowanego bajtu do zmiennej tymczasowej tmp_str (z zamianą zmiennej byte na char)

     end;

     result := tmp_str; //wyprowadzenie rezultatu funkcji

end; 

chcialem o przepisac na php i chcielem spytaca co to za linijka?

byte_pass := Ord(password[i mod len_pass]); //pobranie kolejnej litery klucza i zamiana na bajt

mod - do czego to ma byc ten mod i czym zastapic go w php.
Da sie to przepisac na php ?

0

mod - dzielenie modulo (reszta z dzielenia).
w php zastępujemy: %
Przykład 10 % 3=1

0

zrobilem w PHP dzieki wielkie:

function code($tekst,$password,$flag_code) {

$len_pass = strlen($password); // dlugosc klucza


	for ($i = 0; $i < strlen($tekst); $i++) { //petla obiegajaca kodowany text

		$byte_in = ord($tekst[$i]); //pobranie kolejnych liter textu
		
		
		$byte_pass = ord($password[$i % $len_pass]); //pobranie kolejnej litert klucza


		// funkcja kodujaca / dekodujaca

	if ($flag_code == 1) { //sprawdzenie flagi (1 ma być kodowanie: 2 dekodowanie)

	$byte_out = ($byte_in + $byte_pass) % 256; 
	//zakodowanie bajtu tekstu bajtem klucza i podzielenie tego modulo przez 256

       
	} else {
             
	$byte_out = (256 + ($byte_in - $byte_pass)) % 256; 
	//rozkodowanie bajtu tekstu zakodowanego bajtem klucza...

	}

	$tmp_str .= chr($byte_out);
	//doklejenie roz/zakodowanego bajtu do zmiennej tymczasowej 
	//tmp_str (z zamianą zmiennej byte na char)

    
	}

   return($tmp_str); //wyprowadzenie rezultatu funkcji


}

1 użytkowników online, w tym zalogowanych: 0, gości: 1