🚀 Вийди на новий рівень крипто-торгівлі!
Easy Trade Bot — автоматизуй свій прибуток уже зараз!

Ми пропонуємо перелік перевірених прибуткових стратегій на такі пари як BTC, DOT, TRX, AAVE, ETH, LINK та інші. Ви можете підключити автоматичну торгівлю на своєму акаунті Binance або отримувати торгові рекомендації на email у режимі реального часу. Також можемо створити бота для обраної вами монети.

Всі результати торгів ботів доступні для перегляду у зручних таблицях на головній сторінці. Швидко, динамічно та прозоро!

Перейти до бота + 30$ бонус

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра автоматизованих систем управління

Інформація про роботу

Рік:
2009
Тип роботи:
Лабораторна робота
Предмет:
Інші
Група:
КН- 411

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Національний університет “Львівська політехніка” Кафедра автоматизованих систем управління  Лабораторна робота № 2 з ММПЗ Тема: Шифрування даних методом квадратів. Мета: Ознайомитися з методом квадратів для шифрування даних. Написати програму, яка б демонструвала роботу алгоритму. Хід роботи Написана мною програма складається з трьох частин. Перша – генерує ключі. Друга - шифрує дані. Третя – їх дешифровує. Текст першої частини: #include<stdio.h> #include<conio.h> #include<stdlib.h> #include<string.h> #define N 16 #define M 256 void main(void){ /* unsigned char*/ int a[N][N],b[N][N],c[N][N],d[N][N],r; int i,j,ii,jj; FILE* f; char keyfilename[100], text[256], crypted[256],cryptfilename[100]; int syma,symb; int flag=1; randomize(); clrscr(); //=============================================== for(i=0;i<N;i++) for(j=0;j<N;j++){ a[i][j]=0; b[i][j]=0; c[i][j]=0; d[i][j]=0; keyfilename[i]=0; text[i]=0; crypted[i]=0; cryptfilename[i]=0; } //================================================ for(i=0;i<N;i++) for(j=0;j<N;j++){ //flag=1; do{ flag=1; r=random(M); for(ii=0;ii<i;ii++) for(jj=0;jj<=N;jj++) if(a[ii][jj]==r){ flag=0; break; } if(flag!=0) for(jj=0;jj<j;jj++) if(a[i][jj]==r) flag=0; }while(flag==0); a[i][j]=r; } //=============================================== for(i=0;i<N;i++) for(j=0;j<N;j++){ //flag=1; do{ flag=1; r=random(M); for(ii=0;ii<i;ii++) for(jj=0;jj<=N;jj++) if(b[ii][jj]==r){ flag=0; break; } if(flag!=0) for(jj=0;jj<j;jj++) if(b[i][jj]==r) flag=0; }while(flag==0); b[i][j]=r; } //================================================ for(i=0;i<N;i++) for(j=0;j<N;j++){ //flag=1; do{ flag=1; r=random(M); for(ii=0;ii<i;ii++) for(jj=0;jj<=N;jj++) if(c[ii][jj]==r){ flag=0; break; } if(flag!=0) for(jj=0;jj<j;jj++) if(c[i][jj]==r) flag=0; }while(flag==0); c[i][j]=r; } //================================================ for(i=0;i<N;i++) for(j=0;j<N;j++){ //flag=1; do{ flag=1; r=random(M); for(ii=0;ii<i;ii++) for(jj=0;jj<=N;jj++) if(d[ii][jj]==r){ flag=0; break; } if(flag!=0) for(jj=0;jj<j;jj++) if(d[i][jj]==r) flag=0; }while(flag==0); d[i][j]=r; } //================================================ // printf("Vveditj imja fajly dlja zbere*ennja cljy4a\n"); // gets(keyfilename); //================================================ do{ printf("Vveditj imja fajly dlja zbere*ennja cljy4a\n"); gets(keyfilename); f=fopen(keyfilename,"w"); }while(f==NULL); for(i=0;i<N;i++){ for(j=0;j<N;j++) fprintf(f,"%d ",a[i][j]); fprintf(f,"\n"); } fprintf(f,"\n"); for(i=0;i<N;i++){ for(j=0;j<N;j++) fprintf(f,"%d ",b[i][j]); fprintf(f,"\n"); } fprintf(f,"\n"); for(i=0;i<N;i++){ for(j=0;j<N;j++) fprintf(f,"%d ",c[i][j]); fprintf(f,"\n"); } fprintf(f,"\n"); for(i=0;i<N;i++){ for(j=0;j<N;j++) fprintf(f,"%d ",d[i][j]); fprintf(f,"\n"); } fclose(f); //================================================= } Результатом роботи є файл ключа, який має вигляд чотирьох таблиць розміром 16х16.  Текст другої частини: #include<stdio.h> #include<conio.h> #include<stdlib.h> #include<string.h> #define N 16 #define M 256 void main(void){ int a[N][N],b[N][N],c[N][N],d[N][N],r; int i,j,ii,jj; FILE* f; char keyfilename[100], text[256], crypted[256],cryptfilename[100]; int syma,symb; int flag=1; randomize(); clrscr(); //=============================================== for(i=0;i<N;i++) for(j=0;j<N;j++){ a[i][j]=0; b[i][j]=0; c[i][j]=0; d[i][j]=0; keyfilename[i]=0; text[i]=0; crypted[i]=0; cryptfilename[i]=0; } do{ printf("Vveditj imja fajly dlja 4utannja cljy4a\n"); gets(keyfilename); f=fopen(keyfilename,"r"); }while(f==NULL); printf("Vveditj re4ennia\n"); gets(text); for(i=0;i<N;i++){ for(j=0;j<N;j++) fscanf(f,"%d ",&a[i][j]); } for(i=0;i<N;i++){ for(j=0;j<N;j++) fscanf(f,"%d ",&b[i][j]); } for(i=0;i<N;i++){ for(j=0;j<N;j++) fscanf(f,"%d ",&c[i][j]); } for(i=0;i<N;i++){ for(j=0;j<N;j++) fscanf(f,"%d ",&d[i][j]); } fclose(f); do{ printf("Vveditj imja fajla dlja zbere8ennja shufrovanoho texty\n"); gets(cryptfilename); f=fopen(cryptfilename,"w"); }while(f==NULL); int pos=0,ia,ja,ib,jb; if(strlen(text)%2==1) strcat(text," "); while(pos<strlen(text)){ syma=text[pos]; symb=text[pos+1]; for(i=0;i<N;i++) for(j=0;j<N;j++) if(a[i][j]==syma){ ia=i; ja=j; break; } for(i=0;i<N;i++) for(j=0;j<N;j++) if(b[i][j]==symb){ ib=i; jb=j; break; } crypted[pos]=c[ia][jb]; crypted[pos+1]=d[ib][ja]; pos+=2; } for(i=0;i<strlen(crypted);i++){ fprintf(f,"%d ",(unsigned char)crypted[i]); } fclose(f); getch(); }  Текст третьої частини: #include<stdio.h> #include<conio.h> #include<stdlib.h> #include<string.h> #define N 16 #define M 256 void main(void){ /*unsigned char*/int a[N][N],b[N][N],c[N][N],d[N][N],r; int i,j,ii,jj; FILE* f; char keyfilename[100], text[256], crypted[256],cryptfilename[100]; unsigned char syma,symb; int flag=1; randomize(); clrscr(); //=============================================== for(i=0;i<N;i++) for(j=0;j<N;j++){ a[i][j]=0; b[i][j]=0; c[i][j]=0; d[i][j]=0; keyfilename[i]=0; text[i]=0; crypted[i]=0; cryptfilename[i]=0; } //================================================ do{ printf("Vveditj imja fajla dlja 4utannia shufrovanoho texty\n"); gets(cryptfilename); f=fopen(cryptfilename,"r"); }while(f==NULL); i=0; while(!feof(f)){ fscanf(f,"%d ",&j); crypted[i]=(char)j; i++; } fclose(f); do{ printf("Vveditj imja fajly dlja 4utannja cljy4a\n"); gets(keyfilename); f=fopen(keyfilename,"r"); }while(f==NULL); //================================================ for(i=0;i<N;i++) for(j=0;j<N;j++){ fscanf(f,"%d ",&a[i][j]); } //=============================================== for(i=0;i<N;i++) for(j=0;j<N;j++){ fscanf(f,"%d ",&b[i][j]); } //================================================ for(i=0;i<N;i++) for(j=0;j<N;j++){ fscanf(f,"%d ",&c[i][j]); } //================================================ for(i=0;i<N;i++) for(j=0;j<N;j++){ fscanf(f,"%d ",&d[i][j]); } //================================================ fclose(f); //================================================= int pos=0,ic,jc,id,jd; while(pos<strlen(crypted)){ syma=crypted[pos]; symb=crypted[pos+1]; for(i=0;i<N;i++) for(j=0;j<N;j++) if(c[i][j]==(int)syma){ ic=i; jc=j; break; } for(i=0;i<N;i++) for(j=0;j<N;j++) if(d[i][j]==symb){ id=i; jd=j; break; } text[pos]=a[ic][jd]; text[pos+1]=b[id][jc]; pos+=2; } for(i=0;i<strlen(text);i++){ printf("%c",text[i]); } getch(); }  Висновок: на цій лабораторній роботі, я ознайомився з алгоритмом квадратів, для шифрування даних і написав програму, яка демонструє його роботу.
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!