Ниже приведён код, нужно из полученного значения восстановить значения '47533', '23182', '52170'.
Скажите, как можно решить? Или же можно переделать алгоритм, основная задача из 3 чисел переменной $a получить одно, из которого можно восстановить начальные 3 числа. Известен только результат переменной $result.
$table = array(0x003b6c1c, 0x002def61, 0x006effa2, 0x0013045f, 0x00873358, 0x0039e1fd, 0x0061491a, 0x002608bf, 0x00254ed0, 0x004fc7dd, 0x00721a32, 0x0018dce3, 0x001328bc, 0x003e288d, 0x0084387e, 0x004c11e3);
$a = array('47533', '23182', '52170');
$result = "";
for($i = 0;$i < count($a);$i++)
{
$result += $a[$i]^$table[$i];
}
echo $result; //Результат: 14139400
Количество бит информации зашифрованного сообщения не может быть меньше совокупного количества бит исходных данных.
Сократить число из 8-12 символов на 2 цифры, с возможностью восстановления в исходное состояние
Продемонстрирую абсурдность постановки задачи:
Допустим существует такой алгоритм:
function shortBy2($number) {
//return shortened;
}
function r($a) {/*implementation*/}
$input = 123456123456;
$r1 = shortBy2($input); // length is 10
$r2 = shortBy2($r1); // length is 8
$r3 = shortBy2($r2); // length is 6
$r4 = shortBy2($r3); // length is 4
$r5 = shortBy2($r4); // length is 2
Таким образом любое число можно сократить до одного из ста чисел. Но по предположению мы можем восстановить исходное число:
$r1 == r(r(r(r($r5))));
однако очевидно, что при ста возможных значениях аргумента, мы получим не более 100 различных результатов "восстановления".
Есть, конечно, архиватор Бабушкина, но это засекреченные технологии.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости