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

7 чел.

Родін С КІТ-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:

Висновки

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


 

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

36388. Электрические принципиальные схемы систем и средств автоматизации. Назначение и правила выполнения 24.29 KB
  Электрические принципиальные схемы систем и средств автоматизации. Принципиальные электрические схемы определяют полный состав приборов аппаратов и устройств а также связей между ними действие которых обеспечивает решение задач управления регулирования защит измерения и сигнализации. Эти схемы служат для изучения принципа действия системы они необходимы при производстве наладочных работ и в эксплуатации. Схемы выполняются применительно к определенным самостоятельным элементам установкам или участкам автоматизированной системы...
36389. тема или АИС это совокупность различных программноаппаратных средств которые предназначены для автомат. 28.78 KB
  Учет снабжения Финансовый учет Информация опоставке информация об оплате Бухгалтерский учет Требования на отпускинформация о поступлении груза цены на ресурсы данные о качестве Учет производства и контроль качества Учет вспомогательно прва Управление и анализ Отчетность по снабжению указания и планы Подсистема Учет снабжения предназначена для ввода и обработки информации по обеспечению оборудованием и материалами предоставляемой отделами и службами предприятия. Данная подсистема осуществляет интенсивный обмен информацией с подсистемой...
36390. Перестроение импульсной характеристики в кривую разгона 887.85 KB
  На участке 1 переходная характеристика совпадает с импульсной. На последующем участке переходная характеристика получается путем суммирования ординат импульсной характеристики на этом участке с соответствующими значениями ординат на предыдущем участке.
36391. Приведите и поясните постановки задач синтеза линейных САУ 42.84 KB
  При синтезе задается множество М систем на котором производится выбор сист по заданному критерию оптимальности. Задача не тривиальна когда множество М содержит более 1го элемента т. 1 Параметрический синтез Элты мнва М различаются параметрами при этом мнва М2 второго ранга неопределенности представляет собой множество полностью определенных сист М3 и с допустимым диапазоном изменения параметров Q M2={ M3 Q} Пр: М2: Wpp=K1K21 p M3: K1 K2 G т. 2 Структурный синтез Элементы исходного множества отличаются...
36392. Сравнительный анализ АСУТП и АСУП 45.5 KB
  Сравнительный анализ АСУТП и АСУП У произвом и ТП имеет ряд отличий: 1 Произвом упрют люди в процессе У они воздействуют на людей. Технол процессом также упрют люди но они воздют на вещи срва произва и предметы труда. Сром труда в современном произве явлся машина человек получает данные о работе машины ее состоянии о наличии и качве сырья материалов и готовой продукции сравет их с планми и норматми данными принимает решение и передает его машине изменяя режим ее работы. 2 Продукт труда в У ТП продукт произва или...
36393. Средства измерения давления газа, жидкости и пара 61.52 KB
  Средства измерения давления газа жидкости и пара. Для прямого измерения давления жидкой или газообразной среды с отображением его значения непосредственно на первичном измерительном приборе на его отсчетном устройстве шкале табло или индикаторе применяются манометры. Если отображение значения давления на самом первичном приборе отсутствует т. прибор является бесшкальным но он позволяет получать и дистанционно передавать измерительный сигнал параметра такой прибор называют измерительным преобразователем давления ИПД или датчиком...
36394. Позиционные и следящие САУ электропривода. Регуляторы положения 24.81 KB
  Класс систем подчиненного регулирования 4 контура управления: контур напряжения контур тока контур скорости 4 регулятора контур положения Регуляторы положения: линейные нелинейные лучше минимум времени Следящие частный случай позиционной на входе задание меняется произвольным способом.
36395. Приведите классификацию и примеры методов синтеза закона управления линейных САУ 43.77 KB
  Методы аналитического синтеза. Эти методы позволяют решить задачу синтеза и провести полное исследование полученного решения. Корневые методы синтеза модальное управление 2.
36396. Средства определения химических составов чугуна, стали 46.71 KB
  Для экспрессанализа содержания углерода в металле применяются устройства основанные на зависимости термоэлектродвижущей силы возникающей в цепи из двух разнородных металлов или сплавов от их природы и свойства. С целью повышения точности определения содержания углерода пробу стали отбираемую по ходу плавки подвергают закалке при этом основной структурной составляющей пробы является мартенсит т. твердый раствор углерода в альфажелезе. В таких бинарных растворах между содержанием углерода и ТЭДС существует линейная зависимость.