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 ? ;/