Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   помогите плиз разобраться с алгоритмом кодирования (Perl) (https://forum.antichat.xyz/showthread.php?t=162470)

Zazil 10.12.2009 19:46

помогите плиз разобраться с алгоритмом кодирования (Perl)
 
Вообщем сабж.
кто хорошо разбирается в Perl помогите плиз
Вообщем этот скрипт кодирует все файлы находящиеся в директории files и записывает в файл my.bin
Его можно раскодировать только если знаешь key
Вообщем вопрос такой. Можно как-то подобрать этот key? Помогите плиз, надо очень один файлик раскриптовать. Спасибо
Код:

#!/usr/bin/perl

sub Encode{
  $m=0;
  while (substr($ekey,$m*6,6) ne "") {
    $eo=int(substr($ekey,$m*6,3));
    $ea=int(substr($ekey,$m*6+3,3));
    &EncodePass;
    $m++;
  }
}

sub EncodePass {
  $o=$eo;
  $ninput=length($data);
  for ($i=0;$i<=$ninput-$o-1;$i++) {
    $char1=substr($data,$i,1);
    $char2=substr($data,$i+$o,1);

    $nchar=ord($char2);
    if ($ea>255){$ea=0;}
    $nchar=$nchar+$ea;
    if ($nchar>255){$nchar=$nchar-256;}
    $char2=chr($nchar);
    $ea++;

    substr($data,$i,1)=$char2;
    substr($data,$i+$o,1)=$char1;
    $o++;
  }

  $o--;
  $ea--;
  $keyn=sprintf("%.3u"."%.3u"."%.6u"."%.6u",$eo,$ea,$i,$o);
  $key="$keyn"."$key";
}

sub EncodeBin {
  chomp(@files=`ls files`);
  foreach $file(@files) {
    $infile=`cat files/$file`;
    $data="$data$infile"."\n<--SPLIT HERE-->\n";
  }
  &Encode;
  open (ENCODED,">my.bin");
  print ENCODED "$data";
  close (ENCODED);
 }




sub Decode {
  $e=`type my.bin`;

  $m=0;
  while (substr($key,$m*18,18) ne "") {
    $b=substr($key,$m*18,3);
    $a=substr($key,$m*18+3,3);
    $i=substr($key,$m*18+6,6);
    $d=substr($key,$m*18+12,6);
    &D;
    $m++;
  }
(@file) = split /<--SPLIT HERE-->\n/,$e;
 

  open (TXT,">c.c");
  print TXT "$file[0]";
  close (TXT);
 

}

sub D {
  for ($j=$d;$j>=$b;$j--) { 
    $i--;
    $g=substr($e,$i+$j,1);
    $f=ord(substr($e,$i,1))-$a;
    if ($f<0){$f=$f+256;}
  substr($e,$i,1)=$g;
  substr($e,$i+$j,1)=chr($f);
    $a--;
    if ($a<0){$a=255;}   
  }
}



print "Enter ekey (example: 001211): ";
chomp($ekey=<STDIN>);
print "Encode key $ekey \n";
&EncodeBin;
print "Decode key $key  \n";
&Decode;


astrologer 10.12.2009 23:48

Никудышный алгоритм =(

Zazil 11.12.2009 12:06

Цитата:

Сообщение от astrologer
Никудышный алгоритм =(

Чем он плох? Есть возможность подобрать ключ?

astrologer 12.12.2009 20:37

Цитата:

Сообщение от Zazil
Чем он плох?

Ненадёжный, наверное?
Цитата:

Сообщение от Zazil
Есть возможность подобрать ключ?

Да.

Zazil 14.12.2009 16:03

Цитата:

Сообщение от astrologer
Ненадёжный, наверное? Да.

Не поможешь с подборкой ключа?


Время: 22:02