20960

ПАРОЛЬНИЙ ЗАХИСТ

Практическая работа

Информатика, кибернетика и программирование

Текст програми include iostream include fstream include conio.h include string include iomanip include windows.h using namespace std; string decrypt string str { for unsigned int i=0; i str.size; i if str[i]=' ' str[i]=charabsshortstr[i]255; return str; } string encrypt string str { for unsigned int i=0; i str.

Украинкский

2013-08-01

101 KB

6 чел.

Родін С КІТ-39

Практична робота №1-8

ПАРОЛЬНИЙ ЗАХИСТ    

 

Ціль роботи:  вивчення принципів організації парольного захисту програм, ознайомлення з видами паролів, реалізація парольного захисту.  

 

Завдання:

Пароль - це код, використовуваний для одержання доступу до систем або файлів, оснащених парольним захистом. Паролі забезпечують збереження цілісності програмного забезпечення в складі обчислювальної системи, але для підтримки паролів потрібна висока дисциплінованість. При першій реєстрації користувача адміністратор визначає коло повноважень для одержання й зміни інформації або виконання певних керуючих дій у системі, керуючись його професійними обов'язками й посадовими інструкціями. Потім користувачеві прелагается ввести свій пароль згідно із правилами, прийнятими в даній системі.  Метод паролів вимагає, щоб пароль, що вводиться користувачем (рядок символів) рівнявся з тим, який зберігається в обчислювальній системі для даного користувача. Якщо пароль вірний, система повинна вивести на екран термінала дату й час останнього входу в систему цього користувача. Потім користувачеві надається можливість користуватися всією інформацією, доступ до якої йому дозволений (паролі можна також використовувати незалежно від користувача для захисту файлів, записів, полів даних усередині записів і т.д.).

Вибірка символів

Використання як пароль окремих символів умовного слова (наприклад, 1 і 5 буква) запобігає ситуації, коли ціле слово може бути випадково почуте. Запитувані символи пароля змінюються при кожній новій спробі доступу. Позиції запитуваних символів можна одержати за допомогою деякої процедури перетворення, прив'язаної до показань годин ЕОМ або виробити генератором псевдовипадкових чисел. Однак пароль слід змінювати досить часто, оскільки він може бути складений  з окремих символів.

Текст програми

#include <iostream>

#include <fstream>

#include <conio.h>

#include <string>

#include <iomanip>

#include <windows.h>

#include <stdlib.h>

#include <time.h>

using namespace std;

string decrypt (string str) {

for (unsigned int i=0; i<str.size(); i++)

 if (str[i]!=' ')

  str[i]=(char)abs((short)str[i]-255);

return str;

}

string encrypt (string str) {

for (unsigned int i=0; i<str.size(); i++)

 if (str[i]!=' ')

  str[i]=(char)(255-(short)str[i]);

return str;

}

int showUsers () {

string tmp;

short count=0;

ifstream in;

try {

 in.open("Encrypt.bin", ios::app);

 if (!in.is_open())

  throw -1;

} catch (int i) {

 cout<<"Error occurred during opening file. Data can't be saved."

  <<endl;

 _getch();

 return 0;

 cout<<endl;

}

cout<<setw(10)

 <<"Name"

 <<setw(11)

 <<"Password";

while (!in.eof()) {

 in>>tmp;

 tmp=decrypt(tmp);

 if (count%2==0)

  cout<<endl;

 cout<<setw(10)

  <<tmp

  <<" ";

  

 count++;

}

in.close();

return 0;

}

int save (string str) {

ofstream out;

try {

 out.open("Encrypt.bin", ios::app);

 if (!out.is_open())

  throw -1;

} catch (int i) {

 cout<<"Error occurred during opening file. Data can't be saved."

  <<endl;

 _getch();

 return -1;

 cout<<endl;

}

str=encrypt(str);

out<<str;

out.close();

return 0;

}

int signIn () {

string str_name, str_pass, tmp, tmp1;

int idx1,idx2,idx3;

short count=0;

ifstream in;

try {

 in.open("Encrypt.bin", ios::app);

 if (!in.is_open())

  throw -1;

} catch (int i) {

 cout<<"Error occurred during opening file. Data can't be saved."

  <<endl;

 _getch();

 return 0;

 cout<<endl;

}

while (count<3) {

 cout<<"You have "

  <<3-count

  <<" more attempt."

  <<endl

  <<"Enter your name: ";

 cin>>str_name;

 str_name=encrypt(str_name);  

 //str_pass=encrypt(str_pass);

 in>>tmp;

 while ((str_name!=tmp)&&(!in.eof()))  in>>tmp;

 if (str_name!=tmp) {

  cout<<"No such user found."

   <<endl;

  _getch();

  system("cls");

  count++;

  continue;

 }

 in>>tmp;

 tmp=decrypt(tmp);

 idx1=rand()% tmp.length();

 do idx2=rand()% tmp.length(); while(idx2==idx1);

 do idx3=rand()% tmp.length(); while((idx3==idx1)&&(idx3==idx2));

 cout<<"Enter "<<idx1+1<<"st, "<<idx2+1<<"st, "<<idx3+1<<"st symbols from your fhrase-password: ";

 cin>>str_pass;

 //cout<<"tmp: "<<tmp;

 tmp1=tmp.substr(idx1,1);  

 tmp1+=tmp.substr(idx2,1);

 tmp1+=tmp.substr(idx3,1);

 //cout<<"tmp1: "<<tmp1;

 if (str_pass!=tmp1) {

  cout<<"Password incorrect!"

   <<endl;

  _getch();

  system("cls");

  count++;

  continue;

 }

 cout<<"Authorization complete."

  <<endl;

 in.close();

 _getch();

 return 0;

}

cout<<"Terminal blocked for 7 sec"

 <<endl;

for (int i=0; i<14; i++) {

 if (i%4==0) {

  system("cls");

  cout<<"Terminal blocked for 7 sec"

   <<endl;

 }

 cout<<". ";

 Sleep(500);

}

return -1;

}

int logIn () {

string str, str1;

cout<<"Enter your name: ";

cin>>str;

str.push_back(' ');

save(str);

do{

 cout<<"Enter your phrase: ";

 cin>>str;

cout<<"Repeat your phrase: ";

cin>>str1;

if(str!=str1) cout<<"Phrases don't matched!";

}

while(str!=str1);

str.push_back(' ');

save(str);

str.erase();

cout<<"Registration finished.";

return 0;

}

int main () {

srand(time(NULL));

string c ;

int flag=-1;

for (;;) {

 if (flag!=0)

  cout<<"<S>ign in"

  <<endl

  <<"<L>og in"

  <<endl

  <<"<E>xit"

  <<endl;

 else

  cout<<"<S>ign in"

  <<endl

  <<"<L>og in"

  <<endl

  //<<"<D>isplay all users:)"

  //<<endl

  <<"<E>xit"

  <<endl;

 c=_getch();

 switch (c[0]) {

 case 'S':

 case 's':

  system("cls");

  flag=signIn();

  break;

 case 'L':

 case 'l':

  system("cls");

  logIn();

  _getch();

  break;

 case 'D':

 case 'd':

  system("cls");

  showUsers();

  _getch();

  break;

 case 'E':

 case 'e':

 case (char)27:

  system("cls");

  return 0;

 }

 system("cls");

}

return 0;

}

Результати роботи зображені на рисунках 1-4:

Висновки

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


 

А также другие работы, которые могут Вас заинтересовать

33376. Классификация СУ по степени совершенства 30.5 KB
  По степени совершенства и функциональным возможностям устройства ЧПУ делятся на следующие типы: NC Numericl Control УЧПУ для обработки изделий на станке по программе. все задачи в данных УЧПУ терминальная геометрическая логическая технологическая и диагностическая решаются на аппаратном уровне. В контурных УЧПУ типа NC основным элементом является интерполятор который обеспечивает обработку криволинейных поверхностей. Отличается от УЧПУ типа NC наличием электронного блока памяти.
33377. Классификация СУ по числу потоков информации. Разомкнутые и замкнутые СУ 29 KB
  Разомкнутые устройства ЧПУ называемые также импульсношаговыми характеризуются только одним потоком информации направляемым от программы управления к рабочему органу станка рис. Разомкнутые УЧПУ строят на основе применения силовых или несиловых шаговых двигателей ШД которые управляются устройствами управления шаговыми двигателями УУШД. Разомкнутое устройство ЧПУ Замкнутые устройства ЧПУ характеризуются двумя потоками информации: один поток поступает от программы управления а второй от датчиков обратной связи. Замкнутое устройство...
33378. Классификация СУ по числу потоков информации. Адаптивные СУ 29.5 KB
  Информация управляющей программы поступает в вычислитель УЧПУ который формирует сигналы задания перемещений по координатам. Сигнал задания и обратной связи поступают в сравнивающее устройство куда поступает также сигнал с датчика положения ИП измеряющего действительное перемещение стола. Сигнал рассогласования преобразованный в формирователе сигнала управления ФСУ поступает в устройство управления куда поступает также сигнал с тахогенератора датчика скорости. Сигнал сформированный в УУ преобразуется тиристорным преобразователем...
33379. Классификация СУ по виду движения исполнительных механизмов 27.5 KB
  По виду движения исполнительных механизмов станка определяемого геометрической информацией в программе УЧПУ подразделяются на устройства позиционного контурного комбинированного управления. Позиционное устройство ЧПУ это устройство обеспечивающее установку рабочего органа станка в позицию заданную программой управления станком чаще всего без обработки в процессе перемещения рабочего органа станка. Эти устройства применяются для управления станками сверлильно расточной группы. Контурное устройство ЧПУ представляет собой устройство...
33380. Принципы построения микропроцессорных СУ. Структура однопроцессорной СУ с одной магистралью 34.5 KB
  Схема микропроцессорной управляющей системы Расширители стандартных арифметических функций МП УЧПУ необходимы для повышения производительности МПС при выполнении операций входящих в базовый набор арифметических функций. Структуры однопроцессорных МПСУс одной магистралью Уже в однопроцессорных УЧПУ в полной мере определились основные принципы организации МПС УЧПУ обеспечивающие возможность расширения системы при сохранении функциональной гибкости и обеспечении надежности функционирования при малом времени восстановления в случае отказа. К их...
33381. Структура однопроцессорной СУ с двумя магистралями 35 KB
  Схема микропроцессорной управляющей системы Расширители стандартных арифметических функций МП УЧПУ необходимы для повышения производительности МПС при выполнении операций входящих в базовый набор арифметических функций. Примером реализации данной структуры являются УЧПУ 2С42 Маяк600. Уже в однопроцессорных УЧПУ в полной мере определились основные принципы организации МПС УЧПУ обеспечивающие возможность расширения системы при сохранении функциональной гибкости и обеспечении надежности функционирования при малом времени восстановления в...
33382. Структура многопроцессорной СУ с параллельным обменом информации между процессорами 29 KB
  Верхний уровень управления системная магистраль. Нижний уровень управления локальные магистрали ВЧС1 ВЧС n. В качестве примера реализации данной структуры можно назвать СУ промышленных роботов: РБ242Б двухпроцессорная двухуровневая система управления с БОП Сфера 36 семипроцессорная двухуровневая система управления с модулем связи.
33383. Структура многопроцессорной СУ с последовательным обменом информации между процессорами 29.5 KB
  2 б в отличие от первой МП ВЧС имеют равные возможности обмена данными. Обмен осуществляется через адаптеры связи АС1АС3 подключенные к локальным магистралям соответствующих вычислителей и имеющих выходы на два последовательных канала обмена. Достоинством данной структуры является конструктивная автономность локальных ВЧС вычислитель возможность их встраивания в аппаратуру расположенную в различных местах общей системы управления при минимальном числе линий обмена и хорошей а в перспективе при использовании оптических каналов обмена ...
33384. Структура с ее перекрестными связями 29.5 KB
  Коммутация может осуществляться в каждом коммутирующем узле КУ матричной системы обеспечивая физическое подсоединение любого модуля памяти МП к любому процессору ПРЦ. Выход из строя части коммутатора не приводит к отказу системы так как функции процессоров коммутируемых этой частью могут быть распределены между другими процессорами системы. Данные системы используются там где необходимо получить максимальную производительность при вычислениях либо управлении.