Расшифровка

Тема в разделе "PHP программирование", создана пользователем SunnyX, 14 янв 2008.

Наш партнер Genesis Hackspace
  1. SunnyX

    SunnyX Гость

    Приветствую всех!
    Имеется код для зашифровки данных, но нет кода для расшифровки.
    Кто-нибудь может помочь в написании расшифровщика?

    Код (Text):
    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;
    }
    Данные сохраняются в базе MsSQL в поле Binary(32).
     
  2. MajestiC

    MajestiC Гость

    Наивный =)
     
  3. nws

    nws Гость

    Не легче просто использовать md5 ?
     
  4. tdr

    tdr Гость

    Для: SunnyX
    Сам придумал, или кто подсказал? :lol:
    Тебе это, вобще, для чего? Если для конкретной работы, то как выше написано, используй MD5, а если просто мозги поразмять, так почему не сам делаешь?
     
Загрузка...
Похожие Темы - Расшифровка
  1. Реник
    Ответов:
    6
    Просмотров:
    1.181
  2. Chasovskiy
    Ответов:
    0
    Просмотров:
    1.191
  3. Chasovskiy
    Ответов:
    1
    Просмотров:
    1.272

Поделиться этой страницей