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

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Болталка (https://forum.antichat.xyz/forumdisplay.php?f=46)
-   -   Зашифровал и забыл (https://forum.antichat.xyz/showthread.php?t=91826)

Delimiter 14.11.2008 20:19

Зашифровал и забыл (+5 в репу)
 
Зашифровал какую то фразу простейшим ксором на одно и то же число.... пробелы между словами удалил.....

помню там было одно слово 'просто' ....
а не фразу и не число не помню :cool:
:p фраза

Mahkqopousnqopsopwrko

кто могет???

[:|||||:] 14.11.2008 20:19

крута

Ponchik 14.11.2008 21:12

[:|||||:], будеш борщик, с капусткой, но не красный?

Delimiter 15.11.2008 19:51

+-сы с мину!

-nEx- 15.11.2008 20:05

Пауки в ачате. Где дихлофос мой?

dmnt 15.11.2008 20:23

Код:

Майкрософтпростосцуко

Delimiter 15.11.2008 20:25

+++++

Delimiter 15.11.2008 20:43

так 8))))))))) попроще но приз тот же +5
зашифровал снова фразу XOR НА ЧИСЛО но не удалял пробелы

никакиф слоф не знаю
фраза:
lef|(ен(жълимукиб(хъы(зыщъф(м ылан(зжмыдицъ

Gen1rus 15.11.2008 20:43

Ьфрлйщзщгытйщзыщзцклщ

Gen1rus 15.11.2008 20:44

ty(;]kbverb,([]s(pso]a(viskfy(p;vslbw]

dmnt 15.11.2008 20:50

2Delimiter, ок, не буду :)

Delimiter 20.11.2008 17:10

первые +5 ушли dmnt
кто следующий?

procedure 21.11.2008 18:00

Решал, решал, какая то хня получилось:
Код:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string key, text, longkey, result;
            char[] text2, longkey2;

            char toto;
            longkey = result =  "";
            Console.WriteLine("Enter the key: ");
            key = Console.ReadLine();
            Console.WriteLine("Enter the text: ");
            text = Console.ReadLine();

            for (int i = 0; i < (text.Length / key.Length); i++)
                longkey += key;
            longkey2 = longkey.ToCharArray();
            text2 = text.ToCharArray();
            for (int i = 0; i < longkey2.Length; i++)
                Console.Write(longkey2[i]);
            Console.WriteLine();
            for (int i = 0; i < text2.Length; i++)
                Console.Write(text2[i]);
            for (int i = 1; i < (text.Length - 1); i++)
            {
                toto = Convert.ToChar((int)text2[i] ^ (int)longkey2[i]);
                result += Convert.ToString(toto);
            }
            Console.WriteLine(result);

        }
    }
}


Delimiter 21.11.2008 18:52

давай по первой 8)) .... ее поскольку решили.... то ее и посмотрим

procedure 21.11.2008 18:57

Смотри, на выводе у меня получается какая то хня. C# с KOI8-R не могу заставить работать....
Цитата:

Enter the key:
10
Enter the text:
Майкрософтпростосцуко
10101010101010101010
Майкрософтпростосцуко????Ў? ??Ў????Ў????
Для продолжения нажмите любую клавишу . . .
т.е. вот результат кодирования:
????Ў?Ў??Ў????Ў????

Сейчас немного переписал:
Код:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int f = 0 ;
            string key, text, longkey, result;
            char[] text2, longkey2;

            char toto;
            longkey = result = "";
            Console.WriteLine("Enter the key: ");
            key = Console.ReadLine();
            Console.WriteLine("Enter the text: ");
            text = Console.ReadLine();
            key = "Mahkqopousnqopsopwrko";

            for (int i = 0; i < (text.Length / key.Length); i++)
                longkey += key;
            longkey2 = longkey.ToCharArray();
            text2 = text.ToCharArray();
           
            for (int i = 1; i < (text.Length - 1); i++)
            {
                f += (int)text2[i] ^ (int)longkey2[i];
                toto = Convert.ToChar((int)text2[i] ^ (int)longkey2[i]);
                result += Convert.ToString(toto);
            }
            Console.WriteLine(result);
            Console.WriteLine(f);

        }
    }
}

Получилось:
Цитата:

Enter the key:
ыва
Enter the text:
Майкрософтпростосцуко
ёёёбёбёббёбёббёбббё
20675
Для продолжения нажмите любую клавишу . . .
20675 Об этом числе шла речь в первом примере?

Delimiter 21.11.2008 19:11

нет кодировать числом нужно от 1-255 .... иначе смысл теряется для посимвольного!
8)))
ты усложнил задачу .... задача поддается полному автоматическому перебору!
Код:

    unsigned char str[1000];
        unsigned char obrazets[50];
        unsigned char rezult[1000];
        int i,j,l,ex;

        strcpy((char *)str,"Mahkqopousnqopsopwrko");
        strcpy((char *)obrazets,"просто");
        for(i=0;*(str+i)!=0;i++)
                    for(j=1;j<256;j++)
                    {
                          for(l=0,ex=0;*(obrazets+l)!=0 && ex==0;l++)
                            if(((char )*(str+i+l)^j)!=*(obrazets+l))
                                ex=1;
                            if(ex==0)
                          {
                              for(l=0;l<strlen(str);l++)
                                *(rezult+l)=*(str+l)^j;
                            *(rezult+l)=0;
                            printf("%s",rez);
                          }
                    }

вторую можно тоже автоматизировать .... зная что пробелы разбивают фразу на слова.... которые даже после XOR остаются различимыми!
Соответственно с ПРЕДПОЛОЖЕНИЕМ 8))) либо с аппаратом предположения... 8)))

Delimiter 21.11.2008 20:00

Вторые плюсеги умчались.....

...кстати счас обалдел.... оказываются дрова к логитех вебкамере свалили мой VC 8)))))
линковка просто впадала в ступор!!! ....

LOGITECH MUST DIE!!!!!!!!!!!!!!!!!!!

Kernet 21.11.2008 20:19

ВРОТМНЕНОГИ

Delimiter 21.11.2008 21:56

и так 3-я задача будет 2раза по +5 в репу.... решаем 2-ю !!!

+5 за 2-ю на дороге не валяются!!! :D Или пока валяются.... хз!


так чуть ниже РЫБУ ЗАВОРАЧИВАЛИ..... господа сразу пропускаем ....

ClienTtm 21.11.2008 22:01

Вы совсем еб*нулись тут? Где дихлофоз епт! Чё за чушь вы несете?

Delimiter 24.11.2008 17:21

Так что имеем в итоге, имеется строка символов , при операции XOR каждый символ превращается в уникальный символ.... зацепка это ПРОБЕЛ .... нам лишь нужно определить где находится пробел и дело в шляпе!!

lef|(ен(жълимукиб(хъы(зыщъф(м ылан(зжмыдицъ

не нужно быть зорким соколом чтоб увидеть главного претендента - это символ '('

теперь имеем уравнение
' '^X='('
думаю теперь каждый отыщет число на которое производился XOR
8)))

Delimiter 24.11.2008 17:58

ПРЕДСКАЗАНИЕ ПРОБЕЛА и расшифровка для фраз заксоренных одним и тем же числом!!!

Код:


#define MAX_LEN 15

int havegotfield(char *sourcestr,char *deststr,int nelement,char *delimiterStr,int mode)
{
        int i;
        int mcnt;
        char tstr[300];
        int flrez=0;
        int pstr=0;
        int prepfl;
        *(deststr)=0;
        if(strchr(delimiterStr,*(sourcestr))!=0)
                prepfl=0;
        else
                prepfl=1;
      for(i=0,mcnt=1,flrez=0,prepfl=0;*(sourcestr+i)!=0;i++)
        {
                if(strchr(delimiterStr,*(sourcestr+i))!=NULL)
                {
                        if(mode==0)
                        {
                                if(prepfl!=0)
                                {
                                        if(mcnt<=nelement)
                                                mcnt++;
                                        else
                                                break;
                                }
                                prepfl=0;
                        }
                        else
                        {
                                if(mcnt<=nelement)
                                        mcnt++;
                                else
                                {
                                        flrez=1;
                                        break;
                                }
                        }
                }
                else
                {
                        if(mcnt==nelement)
                        {
                                *(deststr+pstr)=*(sourcestr+i);
                                pstr++;
                                flrez=1;
                        }
                        prepfl=1;
                }
        }
        *(deststr+pstr)=0;
        return flrez;
}

^--- вспомогательная  функция выдирает лексемы(слова) по определенным делимитерам(разделителям)
.......................


        int i,j,fl_ex,rez_n;
        char str[1000];
        char dstr[1000];
        char rez[1000];
        char tstr[5];
        *(tstr+1)=0;
        strcpy(str,"lef|(ен(жълимукиб(хъы(зыщъф(мшылан(зжмыдицъ");
      for(i=1;i<256;i++) \\ проверяем каждый символ как претендента
        {
                *tstr=i;
                for(j=1,fl_ex=0;havegotfield(str,dstr,j,tstr,1)!=0 && fl_ex==0;j++) \\ идем по строке разбиваем на лексемы
                        if(!(strlen(dstr)>0 && strlen(dstr)<MAX_LEN)) \\ проверка разбития
                                fl_ex=1;
                if(fl_ex==0 && j>1) \\ условие претендента
                {
                  rez_n=' '^i;
                  for(j=0;*(str+j)!=0;j++) \\ превращаем строку в соответствии с наденным числом
                          *(rez+j)=*(str+j)^rez_n;
                  *(rez+j)=0;
                  if(strlen(rez)==strlen(str))
                  {
                              printf("\r\n--------------------------------------------\r\n");
                              printf("%s",rez);
                  }
                }             
        }
....................


dnd 24.11.2008 19:55

int _tmain(int argc, _TCHAR* argv[])
{
HANDLE h = CreateFile(L"c:\\1.txt",GENERIC_ALL,0,0,OPEN_EXIST ING,0,0); //файл со строкой
char buff[1000];
DWORD read=0;
ReadFile(h,&buff,1000,&read,0);
for(int i=0;i<256;i++)
{
char b[1000];
memcpy(&b,&buff,read);
for(int j=0;j<read;j++)
b[j] = b[j] ^ i;
if(b[4]==' ')
{
HANDLE o = CreateFile(L"c:\\2.txt",GENERIC_ALL,0,0,CREATE_ALW AYS,0,0);
WriteFile(o,&b,read,&read,0);
}
}
return 0;
}

Delimiter 24.11.2008 19:57

ПЛЮСЭГИ УЛЕТЕЛИ dnd!!!

dnd 24.11.2008 20:20

отписался :D


Время: 16:19