Szyfrowanie tekstu

0

Witam, napisałem algorytm szyfrownia tekstu i po stronie klienta działa, jednak gdy przesyłam na serwer zaszyfrowany tekst, to chcę aby tam został odszyfrowany i zaszyfrowany według algorytmu serwera. Problem jest taki, że odszyfrowanie po stronie serwera działa, jednak szyfrowanie już nie i po prostu zwraca mi odszyfrowany tekst zamiast zaszyfrowanego.

<?PHP
	error_reporting(0);
	if($_POST['encrypted_text'])
	{
		$encrypted_text = $_POST['encrypted_text'];
		if($_POST['mode'] == "write");
		{
			$save = fopen("serwer/encrypted_text.txt", "w");
			echo "Tekst został zapisany na serwerze."."\n\n";
			$_POST['mode'] = "rea";
		}
	}	
	if($_POST['mode'] == "rea")
		{
			$file = fopen("encryption_scheme.txt", "r");
			$data = $_POST['encrypted_text'];
			$data = str_replace(',', '', $data);
			while (!feof($file)) 
			{
				$text = fgets($file);
				list($letter, $code) = explode(' => ', $text, 2);
				$code = trim($code);
				$data = str_replace($code, $letter, $data);
			}
			fclose($save);
			fclose($file);
			$file = fopen("serwer/encryption_scheme.txt", "r");
			while (!feof($file)) 
			{
				$text = fgets($file);
				list($letter, $code) = explode(' => ', $text, 2);
				$code = trim($code);
				$server_encryption = str_replace($letter, $code, $data); <------ tu jest problem, litery nie są zamieniane na kod
			}
			echo $server_encryption; 
		}
	
	if($_POST['mode'] == "read")
	{
		$data = fopen("serwer/encrypted_text.txt", "r");
		$data = fgets($data);
		echo $data;
	}
?>

Tak wiem kod jest napisany masakrycznie, jednak jest to tylko taka faza mocno testowa. Gdy podstawowe funkcje będą działać zajmę się jego usprawnianiem

0

Kod do zaszyfrowania masz zapisany w $data. W pętli dla każdej litery szyfru tworzysz zmienną server_encryption na podstawie "surowej" wersji $data. Na koniec wykonania pętli masz w zmiennej server_encryption tylko jedną zakodowaną literę, bo za każdym razem pracujesz na "świeżych" danych, a wyniku nigdzie nie zapisujesz tylko go co cykl nadpisujesz :)

Jak będziesz to poprawiał to przy korzystaniu z samego str_replace weź także pod uwagę sytuację kiedy zamienisz np w pierwszym cyklu literę 'a' na 'c', a potem pojawi się w szyfrze informacja, że 'c' ma być zamienione na 'z', bo wszystkie litery 'a' zostaną końcowo zamienione na 'z' (a => c, potem c => z).

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