Нужно вычислить ключ из декриптора.

Статус
В этой теме нельзя размещать новые ответы.

t0os

Профессор
Регистрация
21 Окт 2007
Сообщения
283
Реакции
36
Вообщем, имеются функции для криптовки:

Код:
<?php
function encrypt($string, $key) {
$result = '';
for($i=0; $i<strlen($string); $i++) {
$char = substr($string, $i, 1);
$keychar = substr($key, ($i % strlen($key))-1, 1);
$char = chr(ord($char)+ord($keychar));
$result.=$char;
}

return base64_encode($result);
}

function decrypt($string, $key) {
$result = '';
$string = base64_decode($string);

for($i=0; $i<strlen($string); $i++) {
$char = substr($string, $i, 1);
$keychar = substr($key, ($i % strlen($key))-1, 1);
$char = chr(ord($char)-ord($keychar));
$result.=$char;
}

return $result;
}

?>

у меня есть закриптованный этой функцией файл. но без ключа ничего не получается. как бы ключ оттуда вытащить? можно брутфорсер написать, канеш. но это извращение. может что попроще есть?
 

o_nix

Хранитель порядка
Регистрация
7 Ноя 2007
Сообщения
1.070
Реакции
1.063
Не специалист в php
но вроде тут в коде и криптовка и декриптовка и в обоих функциях переменная $key
С точки зрения математики найти неизвестное нельзя ... в php фиг его знает .. люди бывает чудеса творят
с брутом будут проблемы тк вы незнаете что должно получиться на выходе ..
как вы определите что брут подобрал нужный кей ??
 

t0os

Профессор
Регистрация
21 Окт 2007
Сообщения
283
Реакции
36
Да,с брутом я погорячился. У меня только входные данные для расшифровки.

Хотя, можно брутить, пока ошибка скрипта выводится. Если ошибки не будет, значит, скорее всего, ключ подобран.
 

Jeurey

Хранитель порядка
Регистрация
13 Сен 2006
Сообщения
419
Реакции
614
Откуда функция, если не секрет? )
 

KillDead

Хранитель порядка
Регистрация
11 Авг 2006
Сообщения
894
Реакции
579
Вообщем, имеются функции для криптовки:

Код:
<?php
function encrypt($string, $key) {
$result = '';
for($i=0; $i<strlen($string); $i++) {
$char = substr($string, $i, 1);
$keychar = substr($key, ($i % strlen($key))-1, 1);
$char = chr(ord($char)+ord($keychar));
$result.=$char;
}
 
return base64_encode($result);
}
 
function decrypt($string, $key) {
$result = '';
$string = base64_decode($string);
 
for($i=0; $i<strlen($string); $i++) {
$char = substr($string, $i, 1);
$keychar = substr($key, ($i % strlen($key))-1, 1);
$char = chr(ord($char)-ord($keychar));
$result.=$char;
}
 
return $result;
}
 
?>

у меня есть закриптованный этой функцией файл. но без ключа ничего не получается. как бы ключ оттуда вытащить? можно брутфорсер написать, канеш. но это извращение. может что попроще есть?
Математика говорит- неизветных должно быть столькоже, сколько уравниний. То бишь нужен вариант до и после крипта. Брут написать несложно



Запустил получил значение
:yahoo::yahoo::yahoo:

:yahoo::yahoo::yahoo:
Вроде подходит
 
  • Нравится
Реакции: t0os

t0os

Профессор
Регистрация
21 Окт 2007
Сообщения
283
Реакции
36
Jeurey, не секрет - нарыл на простарах интернета :D
KillDead, спасибо, сейчас буду пробовать :)
 

Виллен

Гуру форума
Регистрация
12 Мар 2009
Сообщения
235
Реакции
61
t0os: а что за код? и как используется?

если php код и вызывается eval(), то с высокой вероятностью первые символы будут "<?"
второе , символы внутри имеют ограниченное множество (скорее всего это латиница + цифры + знаки препинания), а не все 256
это тоже может снизить число возможных ключей
 

KillDead

Хранитель порядка
Регистрация
11 Авг 2006
Сообщения
894
Реакции
579
Немного ступил - в коде eval(decrypt( encrypt(TRUE_CODE, $key) , $key)); //
евал **х не нужен, нужно просто известную строчку кодировать и декодировать. И заменить ord на chr
t0os: а что за код? и как используется?

если php код и вызывается eval(), то с высокой вероятностью первые символы будут "<?"
второе , символы внутри имеют ограниченное множество (скорее всего это латиница + цифры + знаки препинания), а не все 256
это тоже может снизить число возможных ключей
Вообщето скорее всего так (ключ это латиница + цифры + знаки препинания), но есть возможность использовать даже некоторые непечатные
 

Виллен

Гуру форума
Регистрация
12 Мар 2009
Сообщения
235
Реакции
61
KillDead:
не вчитывался в твой код, только что заметил
но разве decrypt( encrypt(TRUE_CODE, $key) , $key) === TRUE_CODE при любом $key ?
 

KillDead

Хранитель порядка
Регистрация
11 Авг 2006
Сообщения
894
Реакции
579
KillDead:
не вчитывался в твой код, только что заметил
но разве decrypt( encrypt(TRUE_CODE, $key) , $key) === TRUE_CODE при любом $key ?
:Dда, при любом. Только что заметил. Просто чел попросил ключ вытащить. А очень часто ключ так же должен сгенерирован по определённому алгоритму. Надо было проверить это в первую очередь.:D
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху