Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Privet nygan pomaw v 2 proekax c, encryption and decrytpion using .. 
:(
    Опции темы
BISKOT188
Дата 21.11.2008, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 21.11.2008

Репутация: нет
Всего: нет



gia pitalsa napisat proekt dla kryptagrafigi s pomawa alogrithma ceasara ..i vot moi code no tyt nekatarie prablemi ne 3nagy kak riwit....




Код

#include <stdio.h>
#include <string.h>

void menu ( void ) {
   printf("Please enter a number: \n"
          "1-Encrypt\n"
          "2-Decrypt\n"
          "3-Exit\n"
          "prompt > ");
   fflush( stdout );
}

int getchoice ( void ) {
   char buff[BUFSIZ];
   int  choice = 0;
   do {
       menu();
       if ( fgets( buff, sizeof buff, stdin ) != NULL ) {
           /* success reading a line, does it make sense? */
           if ( sscanf( buff, "%d", &choice ) != 1 ) {
               printf( "Enter a number\n" );
           }
       } else {
           /* user EOF, just exit now */
           choice = 3;
       }
   } while ( choice < 1 || choice > 3 );
   return choice;
}

void encode ( void ) 
{
    char buff[BUFSIZ];
    int i = 0;
    int shift_value;
     printf( "Doing encrypt\n" );
    printf("\nPlease enter the text you wish to encrypt: ");
    fgets(buff, sizeof(buff), stdin);
        if ("%s"  > 'Z')
    {
       "%s" -= 'Z' - 'A';
    }
    printf("\nEnter your encryption shift value (anything from +-1 to 25): "); 
   scanf ("%i", &shift_value);
    
    

    {    
while ( buff[i] != '\0' )
     {
   buff[i] = buff[i] + shift_value;
   i++; 
   
     }
    }
printf("\n Your encrypted text is: %s \n", buff);
}
void decode ( void ) 
{
    char buff[BUFSIZ];
    int i = 0;
    int shift_value;
               printf( "Doing decrypt\n" );
    printf("\nPlease enter the text you wish to decrypt: ");
    fgets(buff, sizeof(buff), stdin);
    printf("\nEnter your encryption shift value (anything from +-1 to 25): "); 
   scanf ("%i", &shift_value);

    {
while ( buff[i] != '\0' ) 
     {
   buff[i] = buff[i] - shift_value;
   i++;
     }
    }
printf("\nYour decrypted text is: %s \n", buff);
}
int main ( ) {
   int choice;
    while ( (choice=getchoice()) != 3 ) {
       if ( choice == 1 ) {

           encode();
       } else
       if ( choice == 2 ) {
           decode();
       }
   }


   return 0;
}



a tyt mogia vtaragia prablema gia napisal adelna proekti dla kryptografigy s pomawy affine algorithma ...no ne kak ne magy ix saidinit stobe v adnom pragekte bil prostoi menu s pomawy if liba case tak stobe sna4ala sprawibala sto xatite sdelat 1)encryption 2) decryption ...bot tyt code 


code for encryption 
Код

#include<stdio.h>
#include<string.h>
void main()
{
   int ch,a1,b1,a,b,c,d,d1[15],h,n,i=0;
   char str1[80],ek[80];
   printf("Dwse to keimeno\n");
   gets(str1);
     do
   {
   printf("Dwse to kleidi\na:");
   scanf("%d",&a);
   printf("\nb:");
   scanf("%d",&b);
   a1=a;
   b1=b;
   b=26;
   d=1;
   while(d!=0)
   {
      
      
         c=a/b;
         
         d=a%b;
         d1[i]=d;
         a=b;
         b=d;
      i=i++;
      
      

   }
   
   n=i-1;

   
   
   

         if(d1[n-1]==1)
         {
            printf("\nOi ariumoi einai prvtoi metaji tous\n\n");
            ch=1;

         }
         else 
         {
            printf("\nOi ariumoi den einai prvtoi metaji tous\n\n");
            ch=0;
         }
   }
   while(ch==0);
         a=a1;
         b=b1;
         printf("\nTo kleidi einai (%d,%d):\n",a,b);

         printf("\nTo keimeno einai %s  to mikos toy %d   \n",str1,strlen(str1));
         n=strlen(str1);
      
         ek[n]='\0';
         h=strlen(ek);
         for (i=0; i<h; i++)
         {
            str1[i]=str1[i]-97;
            ek[i]=((a*str1[i]+b)%26)+97;
            printf("%c -> %d to \n",str1[i]+97,str1[i]);
         }
         
         printf("\n\nTo kriptografhmeno keimeno einai:%s \n",ek);
         for (i=0; i<h; i++)
         {
            printf("%c -> %d \n",ek[i],ek[i]-97);
         }
         printf("To kriptografhmeno keimeno einai:%s \n\n",ek);
         
}


decription code

Код

#include<stdio.h>
#include<string.h>
void mul(int a1,int b1,int *d,int *x,int *y);
void main()
{
   int ch,xx,a1,b1,a,b,c,d,d1[15],h,n,x,key,y,i=0;
   char str1[80],dk[80];
   printf("Dwse to keimeno\n");
   gets(str1);
     do
   {
   printf("Dwse to kleidi\na:");
   scanf("%d",&a);
   printf("\nb:");
   scanf("%d",&b);

   a1=a;
   b1=b;
   b=26;
   mul(a,b,&d,&x,&y);
   key=x;
   if (key<0)
   {
      key=26+key;
   }
   printf("\n1/a:%d \n",key);

   d=1;
   while(d!=0)
   {
      
      
         c=a/b;
         
         d=a%b;
         d1[i]=d;
         a=b;
         b=d;
      i=i++;
      
      

   }
   
   n=i-1;

   
   
   

         if(d1[n-1]==1)
         {
            printf("\nOi ariumoi einai prvtoi metaji tous\n\n");
            ch=1;

         }
         else 
         {
            printf("\nOi ariumoi den einai prvtoi metaji tous\n\n");
            ch=0;
         }
   }
   while(ch==0);
         a=a1;
         b=b1;
         printf("\nTo kleidi einai (%d,%d):\n",a,b);

         printf("\nTo keimeno einai %s  to mikos toy %d   \n",str1,strlen(str1));
         n=strlen(str1);
      
         dk[n]='\0';
         h=strlen(dk);
         for (i=0; i<h; i++)
         {
            str1[i]=str1[i]-97;
            xx=(str1[i]-b)%26;/*to kano se periptosi pou o b einai megalos*/
            if (xx<0)
            {
               xx=26+xx;
            }
            
            dk[i]=((key*(xx))%26)+97;
            printf("%c -> %d\n",str1[i]+97,str1[i]);
         }
         printf("\n\nTo kriptografhmeno keimeno einai:%s \n",dk);
         for (i=0; i<h; i++)
         {
            printf("%c -> %d\n",dk[i],dk[i]-97);
         }
         printf("To kriptografhmeno keimeno einai:%s \n\n",dk);
         
}

void mul(int a1,int b1,int *d1,int *x1,int *y1)
{int c,d,x,y;
   if(b1==0)
   {
      *d1=a1;
      *x1=1;
      *y1=0;
      
   
   }
   else{
   d=*d1;
   x=*x1;
   y=*y1;
      


c=a1%b1;

mul(b1,c,&d,&x,&y);
   

*d1=d;
*x1=y;
*y1=x-(a1/b1)*(y);

   }
   
}


esli ktonebyt moget pamo4 spasiba!!
PM MAIL   Вверх
sQu1rr
Дата 21.11.2008, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 597
Регистрация: 11.11.2008
Где: london

Репутация: 3
Всего: 13



Читайте вредные советы, там где написано про транслит...
Я уверен, что никто н будет разбираться с вашей проблемой, пока вы ее нормально не оформите и не распишите

gia pitalsa napisat proekt dla kryptagrafigi s pomawa alogrithma ceasara ..i vot moi code no tyt nekatarie prablemi ne 3nagy kak riwit....
Какую проблему. Я же не собираюсь весь код шарить в поисках проблемы. Я даже не знаю, для чего функция нужны. Пишите более подробно пожалуйста!

 smile 
PM MAIL Skype GTalk   Вверх
BISKOT188
Дата 21.11.2008, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 21.11.2008

Репутация: нет
Всего: нет




hello my friends .my first problem...i ve develop an algorithm of the casear encryption but i have an error and i cant make it work..the decryption works fine but i have problem with the encryption and an error here is the error it seems right but dunoo "%s" -= "Z" - "A"; c2016.. anyone could help..


well thats my first problem my second is that i have made 2 separate codes for the affine algorith encryption decryption but whenever i try to make them under a case or if so i can have a simple menu like 1) encryption  2)decryption it always dont work...:(((


well i dont know good russian:)
PM MAIL   Вверх
sQu1rr
Дата 21.11.2008, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 597
Регистрация: 11.11.2008
Где: london

Репутация: 3
Всего: 13



Цитата(BISKOT188 @ 21.11.2008,  22:53)
well i dont know good russian:)

Ничо, что я буду отвечать по русский, ато i dont know good english smile

Скажу прямо, я не знаток програмирования на C, поэтому не знакомился с printf и scanf, но в любом случае насколько я понимаю, их понятия нелязя использовать в if()
А следовательно, что вы хотели этим сказать?

Код

fgets(buff, sizeof(buff), stdin);
        if ("%s"  > 'Z')
    {
       "%s" -= 'Z' - 'A';
    }


Или уточните, может вы под С пишете?
Если нет, то пользуйтесь iostream, потому что мой компилятор выдает ошибки, а пока я не узнаю, что вы хотели написать, я не смогу исправить ))


А можно узнать про второй код поподробнее. Чтото я не понял ни первого ни второго описания  smile 
PM MAIL Skype GTalk   Вверх
J0ker
Дата 21.11.2008, 23:21 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 9
Всего: 14



Цитата(BISKOT188 @  21.11.2008,  22:53 Найти цитируемый пост)
i dont know good russian

ыыыыыыыыыыыыыыыыыыыыы  smile 
Цитата(sQu1rr @  21.11.2008,  23:05 Найти цитируемый пост)
i dont know good english 

ыыыыыыыыыыыыыыыыыыыыы  smile 

Это сообщение отредактировал(а) J0ker - 21.11.2008, 23:24


--------------------
user posted image
PM MAIL   Вверх
BISKOT188
Дата 22.11.2008, 00:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 21.11.2008

Репутация: нет
Всего: нет



net bez prablem gia vco panemagy ..smile no pisat ne magy ryskim wriftam gia givy v 3agrani4e...
ny printf eta to ge samagia kak <cout> na c++ ny tam to sto ispolzibae4a patamywta eta pragrama dalgan 3akadirovat text katori gei dagio4a 
stobe abisnit sto ana delaget ana svazana s kryptografigi .. esli ti daw gei vxod bykvy b i kly4 skagem daw 20  to a srazy kodirovae4a na v i kly4 moget bit 0<k<25 prosta to sto dagio4a v printf at polzivatela dalgno srazy peredeleva4a...
i tam eta kadirovka...

a nawot btarova gia napisal eti 2 koda  no mne nygna ix pamestit v adin aboi i sdelat adin prastoi meny  s adnoi printf (" sto bi xatite sdelat 1)kryptografigy 2) rawifrofky ") procta sdelat adin menu ,,,s ypatribleniam if ili case ..naprimer 

int x;
printf (" sto bi xatite sdelat 1)kryptografigy 2) rawifrofky")
scanf(x);
if (x=1) then do 
 
to sto delaget pervi kod  encryption,,,

else 
to sto delaet 2 roi code decryption..
PM MAIL   Вверх
taiven
Дата 22.11.2008, 00:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 302
Регистрация: 30.6.2008

Репутация: 2
Всего: 9



Цитата

no pisat ne magy ryskim wriftam gia givy v 3agrani4e...

Пользуйтесь функцией "Транслит"
user posted image

Это сообщение отредактировал(а) taiven - 22.11.2008, 00:52
PM   Вверх
BISKOT188
Дата 22.11.2008, 01:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 21.11.2008

Репутация: нет
Всего: нет



stobe pisat s translitom nada 3nat kak prabelna pisat po ryski a jia kak videte etaba ne 3nagy gia sam y4il ryski nekagda nebil v rasie:)))
PM MAIL   Вверх
BISKOT188
Дата 22.11.2008, 01:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 21.11.2008

Репутация: нет
Всего: нет



вап4ета стобе абиснит то сто ха4у  сделат в перваи програме ето то сто ха4у переделат адин код из  pascal v c  вот падобни код из паскала 

Код

program shfrovalka;
uses crt;
  var text:string;
  m,k,c,men:integer;
procedure cez(var text:string; var k:integer);
  begin
  clrscr;
   writeln('vvedite isxodniy text ');
    write('$~/> ');
    read(text);
   write('vvedite klu4 shifrovani9 ');
    readln(k);
   for m:=1 to length(text) do
    begin
     c:=ord(text[m])+k;
     if c>256 then c:=c-256;
     text[m]:=chr(c);
    end;
end;
procedure desh (var text:string);
  begin
   writeln('vvedite kluch deshifrovki' );
   readln(k);
    for m:=1 to length(text) do
     begin
      c:=ord(text[m])-k;
       if c<256 then c:=c+256;
      text[m]:=chr(c);
     end;
  end;
begin
  repeat
    clrscr;
    writeln('1 - shifrovka ');
    writeln('2 - deshifrovka ');
    writeln('3 - sosto9nie texta ');
    readln(men);
     case men of
      1:cez(text,k);
      2:desh(text); U?
      3:begin
         writeln(text);
         readkey;
        end;
     end;
  until men = 0;
end.
если ктонебыт могет переделат вотета в c to tada dymagy sto ne prido4a lamat golaby v perbam kode katorim jia pitagys naiti pa4emy on ne kak ne rabotaet.....
PM MAIL   Вверх
taiven
Дата 22.11.2008, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 302
Регистрация: 30.6.2008

Репутация: 2
Всего: 9



Код

#include <stdio.h>
#include <string.h>
#include <conio.h>

char text[256];
int m,k,c,men;

/*Encrypt*/
void cez(char *Text)
{
    printf("%s\n", "vvedite isxodniy text ");
    gets(Text);
    printf("%s\n", "vvedite klu4 shifrovani9 ");
    scanf("%d", &k);

    for(m = 0; m < strlen(text); ++m)
    {
        c = text[m] + k;
        if(c > 256) c -= 256;
        Text[m] = c;
    }    
}

/*Decrypt*/
void desh(char *Text)
{
    printf("%s\n", "vvedite klu4 deshifrovki");
    scanf("%d", &k);

    for(m = 0; m < strlen(text); ++m)
    {
        c = Text[m] - k;
        if(c < 256) c+=256;
        Text[m] = c;
    }
}
int main()
{
    cez(text);
    printf("%s\n", text);
    
    desh(text);
    printf("%s\n", text);

    _getch();
    return 0;
}

PM   Вверх
BISKOT188
Дата 22.11.2008, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 21.11.2008

Репутация: нет
Всего: нет



спасиба 3а помащ  канещна мне тепер придо4а рищит адны праблемы етава кода если ми дадим как вход к нему слова боок то тада он не дагиот правелни ре3ултат..могет тоге 3агланих па4ему ета праицходит..
PM MAIL   Вверх
BISKOT188
Дата 22.11.2008, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 21.11.2008

Репутация: нет
Всего: нет



tyt 4ota ne tak s etim c codam katori ti mne perevol smile ne magy panat pa4emy ano rabotaet narmalna dla kly4ei katorie 1 2 3 4 esli dadim viwe to srazy pagiavlagy4a ne prabilnajia encryption ... 

gia dymagy stota svazana s char text[256];
no iwo ne to4na..
PM MAIL   Вверх
xvr
Дата 24.11.2008, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Цитата(BISKOT188 @ 22.11.2008,  12:25)
спасиба 3а помащ  канещна мне тепер придо4а рищит адны праблемы етава кода если ми дадим как вход к нему слова боок то тада он не дагиот правелни ре3ултат..могет тоге 3агланих па4ему ета праицходит..

Да иже воззрим мы на исходный код, то буде во входной строке нечто, да преобразуемое во число ноль, то С строка да буде обрезана по этому месту, ибо так устроенны строки в С. Во Pascal'е же строки да не ведут себя так, ибо пребывают со счетциком отдельным, коий да не изменяем буде никоим шифрованием.
Да и код исходный не являет пример безошибочных программ:
Код

char text[256];

void cez(char *Text)
{
    printf("%s\n", "vvedite isxodniy text ");
    gets(Text); // <<< Параметр
    printf("%s\n", "vvedite klu4 shifrovani9 ");
    scanf("%d", &k);

    for(m = 0; m < strlen(text); ++m) //<< Глобал
    {
        c = text[m] + k; //<< Глобал
        if(c > 256) c -= 256;
        Text[m] = c; // <<< Параметр
    }    
}
Стиль письма такой да есть грех великий, и работает это толькмо по недоразумению.

PS. Write in English, pls.

PM MAIL   Вверх
taiven
Дата 24.11.2008, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 302
Регистрация: 30.6.2008

Репутация: 2
Всего: 9



по поводу кода да, это я отжег  smile тупо с паскаля сдирал, вообще не думал, что пишу, только сейчас увидел, честно  smile 

Цитата

Да иже воззрим мы на исходный код...

smile

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0659 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.