powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Обратная ф-иия, Помогите написать.
2 сообщений из 2, страница 1 из 1
Обратная ф-иия, Помогите написать.
    #32951778
kAlexander
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите написать пожалуйста обратную ф-ию к (ниже, что уже сделано):
CODE
function encrypt($str) {
$key = array();
$dst = array();
$i = 0;

$nBytes = strlen($str);
while ($i < $nBytes){
$i++;
$key[$i] = ord(substr($str, $i - 1, 1));
$dst[$i] = $key[$i];
}

$rslt = $key[1] + $key[2]*256 + $key[3]*65536 + $key[4]*16777216;
$one = $rslt * 213119 + 2529077;
$one = $one - intval($one/ 4294967296) * 4294967296;

$rslt = $key[5] + $key[6]*256 + $key[7]*65536 + $key[8]*16777216;
$two = $rslt * 213247 + 2529089;
$two = $two - intval($two/ 4294967296) * 4294967296;

$rslt = $key[9] + $key[10]*256 + $key[11]*65536 + $key[12]*16777216;
$three = $rslt * 213203 + 2529589;
$three = $three - intval($three/ 4294967296) * 4294967296;

$rslt = $key[13] + $key[14]*256 + $key[15]*65536 + $key[16]*16777216;
$four = $rslt * 213821 + 2529997;
$four = $four - intval($four/ 4294967296) * 4294967296;

$key[4] = intval($one/16777216);
$key[3] = intval(($one - $key[4] * 16777216) / 65535);
$key[2] = intval(($one - $key[4] * 16777216 - $key[3] * 65536) / 256);
$key[1] = intval(($one - $key[4] * 16777216 - $key[3] * 65536 - $key[2] * 256));

$key[8] = intval($two/16777216);
$key[7] = intval(($two - $key[8] * 16777216) / 65535);
$key[6] = intval(($two - $key[8] * 16777216 - $key[7] * 65536) / 256);
$key[5] = intval(($two - $key[8] * 16777216 - $key[7] * 65536 - $key[6] * 256));

$key[12] = intval($three/16777216);
$key[11] = intval(($three - $key[12] * 16777216) / 65535);
$key[10] = intval(($three - $key[12] * 16777216 - $key[11] * 65536) / 256);
$key[9] = intval(($three - $key[12] * 16777216 - $key[11] * 65536 - $key[10] * 256));

$key[16] = intval($four/16777216);
$key[15] = intval(($four - $key[16] * 16777216) / 65535);
$key[14] = intval(($four - $key[16] * 16777216 - $key[15] * 65536) / 256);
$key[13] = intval(($four - $key[16] * 16777216 - $key[15] * 65536 - $key[14] * 256));

$dst[1] = $dst[1] ^ $key[1];

$i=1;
while ($i<16){
$i++;
$dst[$i] = $dst[$i] ^ $dst[$i-1] ^ $key[$i];
}

$i=0;
while ($i<16){
$i++;
if ($dst[$i] == 0) {
$dst[$i] = 102;
}
}

$encrypt = "0x";
$i=0;
while ($i<16){
$i++;
if ($dst[$i] < 16) {
$encrypt = $encrypt . "0" . dechex($dst[$i]);
} else {
$encrypt = $encrypt . dechex($dst[$i]);
}
}

return $encrypt;
}


Вот несколько вспомогательных ф-ий:
QUOTE
function comp($c1,$c2,$c3,$c4) {
return $c1+$c2*256+$c3*65536+$c4*16777216;
}
$four = comp($key[13],$key[14],$key[15],$key[16]);

QUOTE
function podbor($c0,$c1,$c2) { // c0 - Начальное число, c1 - множитель, c2 - слагаемое
$i=0;
$r = 123.123;
while ($r != floor($r)) {
$t = $c0 + 4294967296*$i;
$t = ($t - $c2)/$c1;
$r = $t;
$i++;
}
return $r;
}
function ext($c) {
$cls = array();
$cls[4] = floor($c/16777216);
$cls[3] = floor(($c-$cls[4]*16777216)/65536);
$cls[2] = floor(($c-$cls[4]*16777216-$cls[3]*65536)/256);
$cls[1] = floor($c-$cls[4]*16777216-$cls[3]*65536-$cls[2]*256);
ksort($cls);
return $cls;
}
array = ext(podbor($two,213247,2529089))); // array содежит $dst[5],[6],[7],[8]


Я уже запутался ужасно. Пожалуйста, помогите дописать.
...
Рейтинг: 0 / 0
Обратная ф-иия, Помогите написать.
    #32952957
1. Пиши язык к которому относится функци (JS)
2. Что она должна делать
3. Почему ты думаешь мы должны дописывать ее
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Обратная ф-иия, Помогите написать.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]