Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...
Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...
Топ:
Оценка эффективности инструментов коммуникационной политики: Внешние коммуникации - обмен информацией между организацией и её внешней средой...
Процедура выполнения команд. Рабочий цикл процессора: Функционирование процессора в основном состоит из повторяющихся рабочих циклов, каждый из которых соответствует...
Установка замедленного коксования: Чем выше температура и ниже давление, тем место разрыва углеродной цепи всё больше смещается к её концу и значительно возрастает...
Интересное:
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Что нужно делать при лейкемии: Прежде всего, необходимо выяснить, не страдаете ли вы каким-либо душевным недугом...
Влияние предпринимательской среды на эффективное функционирование предприятия: Предпринимательская среда – это совокупность внешних и внутренних факторов, оказывающих влияние на функционирование фирмы...
Дисциплины:
|
из
5.00
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
|
|
Данную экспериментальную проверку будем осуществлять, изменяя скорость подбора паролей, и фиксировать время, за которое не будет скомпрометирован пароль, при этом значения P и S изменяться не будут.
- вероятность подбора пароля P=10-3;
- мощность пространства паролей S=1,6*1012
Время, за которое данный пароль не будет скомпрометирован, вычисляется по следующей формуле: T=(P * S) / V
1 Скорость подбора пароля V, паролей /сек-1*105;
T=(10-3*1.6*1012) / 105 = 1600 секунд => 4.44 часа
2 Скорость подбора пароля V, паролей /сек-2*105;
T=(10-3*1.6*1012) / 2*105 = 8000 секунд => 2.22 часа
3 Скорость подбора пароля V, паролей /сек-2,5*105;
T=(10-3*1.6*1012) / 2,5*105 = 6400 секунд => 1.77 часа
4 Скорость подбора пароля V, паролей /сек-3*105;
T=(10-3*1.6*1012) / 3*105 = 5333 секунд => 1.48 часа
При увеличении скорости подбора паролей в два раза время, затраченное на подбор, уменьшается также в два раза.
Для того, что бы точно скомпрометировать пароль за три часа, необходима скорость подбора паролей V=1.5*108 паролей /сек. Время взлома также уменьшается от вида атаки и от степени осведомлённости злоумышленника. Так простейшая программа для взлома паролей архиватора RAR “Advanced RAR Password Recovery” предусматривает 3 типа атаки:
- перебор
- по маске
- по словарю
Сократить время взлома также можно, указав предполагаемую длину или установив её рамки, так же можно указать язык или набор символов, из которых предположительно состоит пароль.
Руководство пользователя
Для начала работы с программой необходимо запустить файл с названием PassGen. После запуска появится окно. Для генерации пароля необходимо нажать на клавишу “GENERIROVANIE”. После чего в окошке появится сгенеррированный пароль. Далее необходимо запомнить пароль и использовать по назначению. При повторном нажатии на клавишу пароль будет сгенерирован вновь. Для выхода из программы необходимо нажать на клавишу “Выход” или нажав на “крестик”.
Заключение
В процессе выполнения курсового проекта была разработана программа, генерирующая пароли пользователей. Программа была написана при помощи интегрированной среды разработки Visual C++. Программа соответствует всем функциональным требованиям, заданным на курсовое проектирование. Взаимодействие с пользователем осуществляется с помощью графического интерфейса.
Таким образом, задание на курсовое проектирование было полностью выполнено.
Список использованных источников
1 http://www.diwaxx.ru/hak/index.php
2 http://www.passwords.ru
3 Келецкий Я. Энциклопедия языка Си/ Пер. с англ.- М.: Мир, 1992. -687с.
4 Керниган Б., Ричи Д., Фьюер А. Язык программирования Си. Задачи по языку С/ Пер. с англ. - М.: Финансы и статистика, 1985.-279с.
ПРИЛОЖЕНИЕ А
Алгоритм программы

|

--------------[на лист 2
Рисунок А.1. Алгоритм программы
---------------------------------------[с листа 1
![]() | |||
![]() | |||
|
![]() |
Рисунок А.1. Лист №2
ПРИЛОЖЕНИЕ Б
Текст программы
// Password.cpp: implementation of the Password class.
//////////////////////////////////////////////////////////////////////
#include <afx.h>
#include "stdafx.h"
#include "PassGen.h"
#include "Password.h"
#include "Random.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
Password::Password(int l)
{length = l;
passwrd = new char [length+1];
dicstr = new char [length+1];
PassAlfavit = new char [36];
HowMuchn = new int [length];
dicstr[length]='\0';
ValueOfDictionary= 134547;}
Password::~Password()
{delete(passwrd);
delete(dicstr);
delete(PassAlfavit);
delete(HowMuchn);}
void Password::GenAlfavit()
{char symbol='A';
for (int index=0;index<36;index++)
{if (index==26)
symbol='0';
PassAlfavit[index]=symbol;
symbol++;}}
char * Password::GetPassword()
{return passwrd;}
void Password::GenPass()
{Random rnd1;
for (int index =0;index<length;index++)
passwrd[index]=PassAlfavit[rnd1.NextR(35)];
passwrd[index]='\0';}
BOOL Password::TestChar()
{ClearMass(length,HowMuchn);
for (int index1=0;index1<length;index1++)
for (int index2=0;index2<length;index2++)
if (passwrd[index1]==passwrd[index2])
HowMuchn[index1]++;
if (HowMuch(length,HowMuchn))
return TRUE;
else return FALSE;}
void Password::ClearMass(int length,int * mass)
{for (int index =0;index<length;index++)
mass[index]=0;}
BOOL Password::HowMuch(int length, int *HowMuch)
{for (int index =0;index<length;index++)
if (HowMuch[index]>1)
return FALSE;
return TRUE;}
BOOL Password::TestDictionary()
{CFile Dictionary;
Try
{Dictionary.Open("length08.txt",CFile.modeRead,NULL);}
catch(CFileException *e)
{Dictionary.Abort(); // close file safely and quietly
e->~CFileException();
MessageBox(0,"Не удается открыть словарь", "ошибка", MB_APPLMODAL|MB_OK|MB_ICONSTOP);
return FALSE;}
for (int index =0;index<ValueOfDictionary;index++)
{Dictionary.Read(dicstr,8);
Dictionary.Seek(2,CFile.current);
if (Compare(length))
return FALSE;}
Dictionary.Close();
return TRUE;}
int Password::Compare(int length)
{for (int index=0;index<length;index++)
if (passwrd[index]!=dicstr[index])
return 0;
return 1;}
ПРИЛОЖЕНИЕ В
Random.cpp
// Random.cpp: implementation of the Random class.
//////////////////////////////////////////////////////////////////////
#include <windows.h>
#include <Winbase.h>
#include <stdlib.h>
#include "stdafx.h"
#include "PassGen.h"
#include "Random.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
Random::Random()
{srand(GetTickCount());}
Random::~Random()
{}
int Random::NextR(int x)
{int rnd1;
rnd1=rand();
srand(rnd1);
rnd1=rand() % x;
return rnd1;}
ПРИЛОЖЕНИЕ Г
PassGenDlg.cpp
// PassGenDlg.cpp: implementation file
#include "stdafx.h"
#include "PassGen.h"
#include "PassGenDlg.h"
#include "Password.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CPassGenDlg dialog
CPassGenDlg::CPassGenDlg(CWnd* pParent /*=NULL*/)
: CDialog(CPassGenDlg::IDD, pParent)
{//{{AFX_DATA_INIT(CPassGenDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);}
void CPassGenDlg::DoDataExchange(CDataExchange* pDX)
{CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CPassGenDlg)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP}
BEGIN_MESSAGE_MAP(CPassGenDlg, CDialog)
//{{AFX_MSG_MAP(CPassGenDlg)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDGEN, OnGen)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CPassGenDlg message handlers
BOOL CPassGenDlg::OnInitDialog()
{CDialog::OnInitDialog();
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control}
// If you add a minimize button to your dialog, you will need the code below
// to draw the icon. For MFC applications using the document/view model,
// this is automatically done for you by the framework.
void CPassGenDlg::OnPaint()
{if (IsIconic())
{CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);}
else
{CDialog::OnPaint();}}
// The system calls this to obtain the cursor to display while the user drags
// the minimized window.
HCURSOR CPassGenDlg::OnQueryDragIcon()
{return (HCURSOR) m_hIcon;}
void CPassGenDlg::OnGen()
{Password ps (8);
ps.GenAlfavit();
do
{ps.GenPass();
if (!ps.TestChar())
continue;
else
if (ps.TestDictionary())
break;
else
continue;}
while (TRUE);
SetDlgItemText(IDC_EDIT1,ps.GetPassword());}
|
|
|
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!