Я следующий код, который делает процедуру XOR кодирования/декодирования:Маленькая проблема вытекания целую строку
<?php
/*
* Simple XOR encoder/decoder, Inkubus
*
*/
$key = pack("H*","3cb37efae7f4f376ebbd76cd");
//$encoded = ")5/Y+F8'0P$/;"; // <- OK, Working
//$decoded = 'hM5cf$350';
$encoded = "-?^<]TLV.GQV)B4[YQ "; // <- BAD, Not working
$decoded = "CTC(*zlkb4848";
//$encoded = ')3\8?E([email protected]$;='; // <- OK, Working
//$decoded = 'suances06';
function decode($encoded,$key) {
$cipher = convert_uudecode($encoded);
$plain = $cipher^$key;
$result = substr($plain, 0, strlen($cipher));
return $result;
}
function encode($decoded,$key) {
$plain = $decoded^$key;
$result = convert_uuencode(substr($plain, 0, strlen($decoded)));
$result = preg_replace("/\n/m","",$result);
$result = preg_replace("/`$/m","",$result);
return $result;
}
echo "Encoded: " . $encoded . "\n";
echo "Decoded: " . decode($encoded,$key) . "\n";
echo "Encoded: " . encode($decoded,$key) . "\n";
echo "Decoded: " . decode(encode($decoded,$key),$key) . "\n";
?>
комментировал сразу после заголовка два примера, которые работают, то раскомментируйте это один с проблемой. Как я могу ОБРАТИТЬ ОБНАРУЖЕНИЕ строки UUENCODED, которую нужно декодировать, чтобы она оставалась неизменной и декодировалась правильно? Комментирование любого проблемного символа в строке не является опцией, а всей строкой в целом.
Работа запуска Пример:
bash-$ php xor.php
Encoded:)3\8?E([email protected]$;=
Decoded: suances06
Encoded:)3\8?E([email protected]$;=
Decoded: suances06
Не работает пример:
bash-$ php xor.php
Encoded: -?^<]TLV.GQV)B4[YQ
Decoded: CTC(*zlkb484
Encoded: ,?^<]TLV.GQV)B4[Y
Decoded: CTC(*zlkb484
Некоторые персонаж потерял или что-то. Есть идеи?
Спасибо!
UPDATE: Еще не работает пример:
$encoded = "-!8H<RY67FP';C1+][email protected] "; // <- BAD, Not working
$decoded = "99b1rchw00d06";
Ран:
bash-$ php xor.php
Encoded: -!8H<RY67FP';C1+][email protected]
Decoded: 99b1rchw00d0
Encoded: ,!8H<RY67FP';C1+]
Decoded: 99b1rchw00d0
37 просмотров не 1 единственная идея :) – bsteo