ok napiszę konkretny przykład , chce zaszyfrować i odzyfrować jakiś text operacją bitową xor.
np:
<?php
$text = 'asdefgho';
$klucz_szyfrujący = 'szyfr';
//szyfrowanie
$zaszyfrowany_text ='';
for($i = 0;$i<strlen($text);$i++)
{
$zaszyfrowany_text += $text{$i} ^
$klucz_szyfrujacy{$i % strlen($szyfr)} }
//odszyfrowanie
$text ='';
for($i = 0;$i<strlen($zaszyfrowany_text);$i++)
{
$text += $zaszyfrowany_text{$i} ^
$klucz_szyfrujacy{$i % strlen($szyfr)} }
?>
jesli nie zrobiłem byka bo pisze z głowy powinno wszystko działać.
problem pojawia gdy mamy do czynienia z dwu bajtowymi znakami w utf np : ó
gdy zrobimy
<?php
$z = 'ó' ^ 'a';
$z2 = $z ^ 'a';
?>
teoretycznie $z2 powinno mieć wartość "ó" ale nie ma dlatego że ó ma dwa bajty a "a" jeden (w utf-8). Rozwiązaniem byłoby gdyby pętla szła bit po bicie a nie znak po znaku. Prosze was o pomoc w zaimplemetowaniu takiej pętli.