Здравствуйте уважаемые программисты!
Я не явлюсь PHP программистом, а только любителем, именно поэтому прошу помощи в разрешение данного вопроса!
Есть исходный текст который временно содержится в переменной $text, который циклом преобразуется в некоторый кошмар

, который записывается в БД. Преобразование привожу ниже:
Вопрос очень простой, как заполучить обратно исходный текст из $ctxt, который содержался в переменной $text, по данному алгоритму?
Тоесть вернуть обратно в исходный вид, тоесть провести эту операцию в обратном направлении !
$bite и $dbit известны !!!
Заранее благодарю за помощь !!!
Спустя 5 часов, 29 минут, 29 секунд (13.07.2009 - 09:12) ApuktaChehov написал(а):
Цитата (Dracula77 @ 13.07.2009 - 00:43) |
Есть исходный текст который временно содержится в переменной $text, который циклом преобразуется в некоторый кошмар , который записывается в БД. |
А зачем это делать?
Спустя 8 часов, 44 минуты, 7 секунд (13.07.2009 - 17:57) Dracula77 написал(а):
Цитата (ApuktaChehov @ 13.07.2009 - 06:12) |
А зачем это делать? |
Странный вопрос, чтобы можно было прочитать побитый текст и чтобы этот алгоритм можно было применить например для шифрования текста или паролей, но по нормальному. Один "народный" умелец без моего ведома влупил эту вещь родственникам и вот сижу чешу репу и пытаюсь придумать как восстановить побитый XOR(ом) текст.
Спустя 1 час, 24 минуты, 33 секунды (13.07.2009 - 19:21) kirik написал(а):
Цитата (Dracula77 @ 13.07.2009 - 09:57) |
Один "народный" умелец без моего ведома влупил эту вещь родственникам и вот сижу чешу репу и пытаюсь придумать как восстановить побитый XOR(ом) текст. |
А можешь весь код выложить, рабочий с примером?
Спустя 1 час, 2 минуты, 19 секунд (13.07.2009 - 20:23) Dracula77 написал(а):
С помощью добрых людей удалось это сделать!
Прикладываю пример, для тех кому это нужно:
PHP |
<?php $input = 'Просто супер крутой текст, который надо извратить и восстановить';
$text = $input;
// ключи $ckey = 'xGbvdeekRjQFRmyKEyX5Uan880YYEtoVmQ6JCdCNWkhd9TkKhFSaQE'; $dlina = strlen($ckey); $shifr = md5($ckey); $bite = $shifr[3]; $dbite = $shifr[1]; $suma = strlen($text); $ctxt = '';
// шифруем текст XOR for ($i = 0; $i < $suma; ++$i) { $ctxt .= $text[$i] ^ $ckey[$i % $dlina] ^ $bite ^ $dbite; $bite = $text[$i]; }
echo '<font color=red>Зашифрованный текст [</font> '.$ctxt.' <font color=red>]</font><br>';
/////////////////////////////////////// // Вторая часть - расшифровка текста // ///////////////////////////////////////
$txt = $ctxt;
// ключи $ckey = 'xGbvdeekRjQFRmyKEyX5Uan880YYEtoVmQ6JCdCNWkhd9TkKhFSaQE'; $dlina = strlen($ckey); $shifr = md5($ckey); $bite = $shifr[3]; $dbite = $shifr[1]; $suma = strlen($txt); $cctxt = '';
// расшифровываем XOR for ($i = 0; $i < $suma; ++$i) { $key = $ckey[$i % $dlina] ^ ($i ? $cctxt[$i-1] : $bite) ^ $dbite; $cctxt .= $txt[$i] ^ $key; } echo '<font color=red>Расшифрованный текст [</font> '.$cctxt.' <font color=red>]</font><br>';
|