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

5 чел.

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

Висновки

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


 

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

82466. Рынок земельных ресурсов и земельная рента. Рынок природных ресурсов 35.15 KB
  Рынок природных ресурсов. Рынок природных ресурсов. В рыночной экономике каждый из экономических ресурсов представляет собой большой ресурсный рынок рынок труда рынок капитала и т.
82467. Технологическая и экономическая эффективность производства, отдача от масштаба производства. Оптимальная комбинация производства, предельные нормы технологического замещения 38.12 KB
  Оптимальная комбинация производства предельные нормы технологического замещения. для производства других продуктов и услуг т. виды экономического производства: легальное производство; незаконное производство; скрытое производство и подпольная экономика; любые поставки товаров и услуг между заведениями принадлежащими одному и тому же предприятию так как они считаются частью продукции предприятия как единого целого; незавершенное производство; производство товаров и услуг домашними хозяйствами а также услуг оказываемых наемной...
82468. Основные макроэкономические показатели и система национальных счетов (ВВП; ВНП; ЧНП; НД) 35.99 KB
  Валовой национальный продукт ВНП – рыночная стоимость всех предназначенных для конечного потребления товаров и услуг произведенных принадлежащими данной стране факторами производства в течение определенного периода времени года. При подсчете ВНП учитываются товары и услуги произведенные факторами производства принадлежащими данной стране. Номинальный ВНП ВВП измеряет стоимость выпуска в данном периоде по ценам этого периода или в текущих денежных единицах.
82469. Макроэкономическое равновесие на рынке товаров и распределение уровня национального дохода 64.25 KB
  Модель DS позволяет рассмотреть механизм формирования равновесного объема национального производства в краткосрочном периоде в условиях изменяющихся цен. Точка Е1 отражает ситуацию макроэкономического равновесия при высоком уровне безработицы и негибкости цен. Увеличение совокупного спроса на кейнсианском отрезке приводит к увеличению реального объема национального продукта но не затрагивает уровня цен. Точка Е2 характеризует макроэкономическое равновесие в условиях неполной занятости наличия узких мест в экономике и отставания темпов...
82470. Кредитно–денежная система и кредитно-денежная политика 35.54 KB
  Кредитно-денежная система – это совокупность кредитных отношений форм и методов кредитования осуществляемых кредитно-финансовыми институтами которые создают аккумулируют и предоставляют экономическим субъектам денежные средства в виде кредита на условиях срочности платности и возвратности. Современная кредитноденежная система государства складывается из банковской системы Центробанк и коммерческие банки и совокупности так называемых специализированных небанковских кредитнофинансовых институтов способных аккумулировать временно...
82471. Рынок ценных бумаг. Структура, организация и функции рынка ценных бумаг 38.45 KB
  По виду ценных бумаг рынок облигаций рынок акций рынок производных финансовых инструментов. По эмитентам рынок ценных бумаг предприятий рынок государственных ценных бумаг и т. По срокам рынок кратко средне долгосрочных и бессрочных ценных бумаг. По видам сделок кассовый рынок подразумевает мгновенное исполнение сделок форвардный рынок и т.
82472. Налогово-бюджетная система и налогово-бюджетная политика. Кривая Лаффера 147.69 KB
  Бюджетноналоговая политика – это такая политика которая направлена на стабилизацию экки с помощью гос. От качества федерального бюджета от уровня собираемости налогов зависят инвестиционные возможности госва уровень соц. защиты граждан предпринимательская активность взаимоотношения РФ с другими странами и в целом результативность всей внутренней и внешней политики госва. Бюджетноналоговая политика представляет собой совокупность мер правительства по изменению гос.
82473. Бюджетный дефицит и способы его финансирования(дискреционная и недискреционная налогово-бюджетная политика, встроенные стабилизаторы) 34.35 KB
  Дискреционная гибкая налоговобюджетная политика – это сознательное манипулирование со стороны законодательной власти налогообложением и государственными расходами с целью воздействия на уровень экономической активности. Недискреционная налоговобюджетная политика – это автоматические изменения в уровне налоговых поступлений независимые от принятия решений правительством. Законодательный орган определяет только ставки налогов а не размер налоговых поступлений бюджетная политика является результатом действия автоматических или встроенных...
82474. Проблема сбалансированности государственного бюджета. Государственный долг и его экономические последствия 34.92 KB
  Различают два вида государственного долга: внутренний и внешний. Серьезные проблемы и негативные последствия большого государственного долга заключаются в следующем:  Снижается эффективность экономики поскольку отвлекаются средства из производственного сектора экономики как на обслуживание долга так и на выплату самой суммы долга;  Перераспределяется доход от частного сектора к государственному;  Усиливается неравенство в доходах;  Рефинансирование долга ведет к росту ставки процента что вызывает вытеснение инвестиций в...