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:

Висновки

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


 

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

36758. Определение постоянного Планка спектрометрическим методом 115.5 KB
  Цель работы: сформулировать гипотезу исследования по уровням сложности, проанализировать метод исследования спектра, исследовать спектр излучения атома водорода в видимой области спектра (серия Бальмера), определить постоянные Ридберга и Планка, объяснить методику их определения, выяснить, как соотносится сплошной и линейчатый спектры атома водорода.
36759. Система дистанционной поддержки в вузе (на примере центра дистанционной поддержки обучения РГПУ им. А. И. Герцена) 43.5 KB
  Сколько метакурсов предлагается в данном разделе Какие значки используются для обозначения метакурсов которые можно посетить: а без кодового слова б только по кодовому слову Откройте метакурс Демонстрация возможностей Moodle. Перечислите модули метакурса Демонстрация возможностей Moodle. Задание №3 Порядок выполнения: Выберите модуль Основные возможности метакурса Демонстрация возможностей Moodle.
36760. Создание «интерфейса пользователя» в среде Scada- системы «Genesis 32» 145 KB
  Ознакомиться с современными направления промышленной автоматизации на базе сетевых технологий с использованием Scd систем что может Scdсистема и ОРСтехнологий. Ознакомиться со Scd системой GENESIS 32 3. Отработать навыки использования современных программноаппаратных средств при построении распределенных информационных систем Общие сведения Scd системы задачи функции см.
36761. Конфигурация глобальной среды. Активизация механизма SSI 46.5 KB
  conf и пропишите в нем директиву которая будет задавать каталог где будут храниться webстраницы сервера: DocumentRoot vr www ваша_фамилия html Сохраните изменения и выйдите из редактора nno. В каталоге где должны храниться webстраницы сервера vr www ваша_фамилия html создайте файл с именем index.html следующего содержания на месте многоточия подставьте свои фамилию и имя: html hed title My web pge title hed body My nme is h1 My web server is working h1 body html Для создания файла введите nno имя_файла...
36763. ИССЛЕДОВАНИЕ ШЕРОХОВАТОСТИ ПОВЕРХНОСТИ 180 KB
  1: а средним арифметическим отклонением профиля R: R=i 1 б высотой неровностей профиля по десяти точкам Rz: Rz=i mx i min 2 где i mx и i min определяются относительно средней линии; в наибольшей высотой неровностей профиля Rmx расстояние между линией выступов и линией впадин профиля в пределах базовой длины; г средним шагом неровностей профиля Sm: Sm=...
36764. Исследование устойчивости линейных систем автоматического регулирования 271 KB
  Пакет моделирования Mtlb. Теоретическая часть Согласно структурной схемы данной математической модели соответствует система дифференциальных уравнений третьего порядка: 1 и уравнение в матричной форме: 2 Характеристическая матрица этого уравнения имеет вид: 3 Соответствующий характеристический полином третьего порядка: р = р3 с1 р2 с2 р с3 4 где коэффициенты сi i = 13 определяются выражениями: с1 = k2 k5 c2 = k2 k5 k4 k3 k6 5 c3 = k2 k3 k6 k1 k4. При заданных величинах коэффициентов полинома...
36765. Исследование метода компьютерной стеганографии для защиты информации 122 KB
  Цель работы Исследование метода замены младших бит используемого в компьютерной стеганографии для защиты информации. Таким образом если цель криптографии состоит в блокировании несанкционированного доступа к информации путём шифрования содержания секретных сообщений то цель стеганографии в скрытии самого факта существования секретного сообщения. При необходимости оба способа могут быть объединены и использованы для повышения эффективности защиты информации.
36766. ИЗУЧЕНИЕ СВОБОДНЫХ КОЛЕБАНИЙ ПРУЖИННОГО МАЯТНИКА 482 KB
  ОТЧЁТ ПО ЛАБОРАТОРНОЙ РАБОТЕ № 4 ИЗУЧЕНИЕ СВОБОДНЫХ КОЛЕБАНИЙ ПРУЖИННОГО МАЯТНИКА. Цель работы: Определение коэффициента жесткости пружины по удлинению пружины и методом колебаний пружинного маятника. Такой функцией является функция описывающая гармонические колебания...