Szyfrowanie i odszyfrowywanie stringu

0

Taki kod:

funkcje PHP:

function toString( $array ) {
	$result = '';
	foreach( $array as $char ) {
		$result .= $char;
	}
	return $result;
}

function zaszyfruj( $string, $haslo ) {
	$haslo = str_split( $haslo );
	$array = str_split( $string );
	
	for( $i = 0, $j = 0; $i < strlen($string); ++$i, ++$j ) {
		if( $j > strlen($haslo) ) $j = 0;
		$array[$i] = chr( ord($array[$i]) + ord($haslo[$j]) );
	}
	
	return toString($array);
}
function odszyfruj( $string, $haslo ) {
	$haslo = str_split( $haslo );
	$array = str_split( $string );
	
	for( $i = 0, $j = 0; $i < strlen($string); ++$i, ++$j ) {
		if( $j > strlen($haslo) ) $j = 0;
		$array[$i] = chr( ord($array[$i]) - ord($haslo[$j]) );
	}
	
	return toString($array);
}

Kod na stronie:

$str = toString( str_split('Jakiś ciąg znaków ze znakami specjalnymi !@#') );
$haslo = 'qweasD12#';
$zaszyfruj = zaszyfruj( $str, $haslo );
$odszyfruj = odszyfruj( $str, $haslo );

echo '<p>String:    '.$str.'</p>';
echo '<p>Zaszyfruj: '.$zaszyfruj.'</p>';
echo '<p>Odszyfruj: '.$odszyfruj.'</p>';

if( $str == $odszyfruj ) {
echo '<p>Działa</p>';
} else {
echo '<p>Nie działa</p>';
}

A po wejściu dostaje takie coś:

String: Jakiś ciąg znaków ze znakami specjalnymi !@#

Zaszyfruj: ����6���5�ؑ����4$���֑������ڑ����������ڑ���

Odszyfruj: ����T*���S��	���RB�	��	������������������ϲ

Nie działa

A więc moje pytanie: co robie źle ? ;/

2

Warning: strlen() expects parameter 1 to be string, array given

Włącz wyświetlanie błędów zamiast głowę zawracać!

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