Кодирование php фала

Discussion in 'PHP' started by Divan, 25 Jun 2009.

  1. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    antichat только:))) И без единички
     
  2. astrologer

    astrologer Elder - Старейшина

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    Можно точные параметры для расшифровки?
     
  3. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    к сожалению мусор и блокоделение утеряны, т.к. было сделано на один разочек. Восстановить невозможно
     
  4. astrologer

    astrologer Elder - Старейшина

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    Да ну. У этого алгоритма очень небольшое множество ключей (8 из которых дают снова исходный текст). Мусор роли практически не играет. После полного перебора (т.е. шифрования теперь уже известного исходного текста со всеми возможными ключами) так и не получился шифр-текст, приведенный Pashkel'ой.

    Наверное, автор решил подправить результаты работы алгоритма, чтобы он выглядел надежнее :)
     
  5. yaws

    yaws New Member

    Joined:
    12 Aug 2009
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Здравствуте.
    Интересует какая кодировка используется при кодидировании номеров деталей на сайте. http://www.t-parts.ru/trade/search ( незнаю в правилах не прочитал можно ли давать ссылки на сайты)
     
  6. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    Ну ок:)) Вот сейчас сохранил все ключи и мусор, расшифруй:

    Code:
    rge ixfwici crarkee ngw eentranio
    
    причем выбран далеко не самый сложный метод шифровки.
     
  7. Велемир

    Joined:
    19 Jun 2006
    Messages:
    1,123
    Likes Received:
    96
    Reputations:
    -25
    Э,а как расшифровывать вообще )
     
    1 person likes this.
  8. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    немного изменил алгоритм дешифровки, чтобы работал более корректно практически во всех случаях (вроде бы). Вот пример скрипта, где сразу и шифровка и дешифровка:

    PHP:
    <pre>
    <?php  
    $slov 
    'корректно работает со словами по отдельности и текстом в частности'// Слово для шифрования (или текст) 
    $bl 8// Длина блока, на которые делим слово 
    $ran 'бямпуент'// Мусор, который добавляем, если при делении слова получился кусок меньше длины блока 
    $key '38247165'// Ключ перестановки (в пределах длины блока)
    $shifr_slov encode($slov,$bl,$ran,$key);
    echo 
    "Пример шифрования\n";
    echo 
    "Слово < $slov >\n";
    echo 
    "Зашифрованное слово < $shifr_slov >\n";

    function 
    encode($slovo,$blog,$rand,$alg) {
     
    $res2 str_split($alg);
     for (
    $i=0;$i<count($res2);$i++) $res2[$i]--;
     
    $res str_split($slovo,$blog);
     for (
    $i=0;$i<count($res);$i++) {
      if (
    strlen($res[$i])<$blog$res[$i] = $res[$i].$rand;
     }
     for (
    $i=0;$i<count($res);$i++) $res1[] = str_split($res[$i]);
     for (
    $i=0;$i<count($res1);$i++) {
       for (
    $j=0;$j<count($res1[0]);$j++) {
          
    $b $res2[$j];
          
    $hash.=$res1[$i][$b];
       }   
     }
    return 
    $hash;
    }


    ###########################################
    echo "\n\n\n\n\n";
    echo 
    "Пример декодирования\n";

    $slov $shifr_slov// Слово для расшифровки (или текст)
    //$bl = 4; // Длина блока, на которые делим слово
    //$ran = 'ос'; // Мусор, который добавляем, если при делении слова получился кусок меньше длины блока
    //$key = '3124'; // Ключ перестановки (в пределах длины блока)

    echo "Зашифрованное слово < $slov >\n";
    echo 
    "Расшифрованное слово < ".decode($slov,$bl,$ran,$key) . " >\n";


    function 
    decode($slovo,$blog,$rand,$alg) {
        
    $buff ''
        
    $res2 str_split($alg);
        for (
    $i=0;$i<count($res2);$i++) $res2[$i]--;
        for (
    $i=0;$i<count($res2);$i++) {
           
    $c $res2[$i];
           
    $res3[$c] =$i;
        }
        
    $res str_split($slovo,$blog);
        for (
    $i=0;$i<count($res);$i++) $res1[] = str_split($res[$i]);
        for (
    $i=0;$i<count($res1);$i++) {
          for (
    $j=0;$j<count($res1[0]);$j++) {
              
    $b $res3[$j];
              
    $hash.=$res1[$i][$b];
          }   
        }
        
    $hash str_replace($rand,'',$hash);
        for (
    $i=strlen($rand);$i>0;$i--) {
           
    $buff=substr($rand,0,$i);
           if (
    strpos($hash,$buff)) { 
              
    $hash str_replace($buff,'',$hash);
              
    $buff '';
              
    $i=0
           }          
        } 
        return 
    $hash;
    }
    ?>
    </pre>
    корректно работает со словами по отдельности и текстом в частности (правда при достаточной длине мусора, чтобы было как можно меньше совпадений в мусоре (в слогах) и кодируемом/декодируемом тексте)

    т.е. имеет смысл при длине блока и мусора от 4-х единиц

    ЗЫЖ Пост подправил, привел более интересный пример, включая совпадения букв мусора с буквами с кодируемом тексте

    т.е. то, что выше, превращает

    "корректно работает со словами по отдельности и текстом в частности"

    в


    "рнортккера атооб лтссе оаовмпо итнодь леттси ои свкт емоасчсо нтбеияутпм"


    и обратно.

    На основе этого можно написать нехилый такой icq-клиент, для шифрованной переписки, что и было у меня в планах, но пока руки не доходят:)
     
    #28 Pashkela, 13 Aug 2009
    Last edited: 13 Aug 2009
    1 person likes this.
  9. altblitz

    altblitz Elder - Старейшина

    Joined:
    5 Jun 2009
    Messages:
    3,691
    Likes Received:
    3,146
    Reputations:
    236
    Pashkela,
    > $hash.=$res1[$i][$b];
    > $res2 = str_split($alg);

    [$b] - переменная?
    ($alg) - алго шифрования(скорее нет ..)?

    PS: мне проще под GCC отладить пока )
     
  10. astrologer

    astrologer Elder - Старейшина

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    Три ключа дают правильный ответ, что ещё раз показывает ненадёжность алгоритма:
    Code:
    ключ       исходный текст
    312        gerix wifi cracker new generation
    312645     gerix wifi cracker new generation
    312645978  gerix wifi cracker new generation
     
    1 person likes this.
  11. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    класс!!!!! Умница. Твой алгоритм расшифровки даже спрашивать не буду.

    Если расшифруешь это - сам признаю, что метод - фекалька:)

    Code:
    оарсжодтлоезрнат чеыпй ец рн-т ооеэ осрпаивом
    
    тут посильнее постарался зашифровать:))
     
  12. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Pashkela Тут даже проще чем в прошлом примере, потому что есть больше информации для атаки по исходному тексту

    Code:
    714295836 = астролоджер зачотный перец - это неоспоримо
     
    _________________________
    #32 Gifts, 13 Aug 2009
    Last edited: 13 Aug 2009
    1 person likes this.
  13. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    ыыыыыыы)))) Всё, сдаюсь. Расшифровка выше всё сказала

    Но это у вас есть функция дешифровки перед глазами, это имеет решающее значение, нет?:)
     
    #33 Pashkela, 13 Aug 2009
    Last edited: 13 Aug 2009
  14. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Pashkela Ни один алгоритм, секретность которого зависит от секретности самого алгоритма не является надежным. (с)

    Плюс твой алгоритм блочный и простой перестановки - так что не суть важно как именно перемешивается текст, главное знать приблизительную длину ключа и исходный текст (если быть точным - часть сообщения и/или язык написания)
     
    _________________________
  15. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    Хорошо. Ушел долго думать. Возможно на днях выдам еще что-нибудь обратимое, но функцию декодирования показывать не буду, согласны на такой эксперимент?

    2 Gifts & 2 astrologer
     
  16. astrologer

    astrologer Elder - Старейшина

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    Нет.
    Во-первых, безопасность системы не должна основываться на неизвестности алгоритма - это security through obscurity. Напротив, нужно предполагать, что потенциальному взломщику известно всё, кроме ключа.
    Во-вторых, тот факт, что в шифр-тексте сохранена частота букв языка исходного текста, позволяет сделать предположения об используемом алгоритме.

    Метод расшифровки очевидный - расшифровка всеми возможными ключами и проверка на осмысленность.

    btw, длина шифра кратна длине ключа
     
    #36 astrologer, 13 Aug 2009
    Last edited: 13 Aug 2009