Скачиваний:
4
Добавлен:
02.04.2023
Размер:
177.56 Кб
Скачать

Министерство науки и высшего образования Российской Федерации

Калужский филиал

федерального государственного бюджетного

образовательного учреждения высшего образования

«Московский государственный технический университет имени Н.Э. Баумана

(национальный исследовательский университет)»

(КФ МГТУ им. Н.Э. Баумана)

ФАКУЛЬТЕТ

ИУК "Информатика и управление"

КАФЕДРА

ИУК6 " Защита информации "

О Т Ч Ё Т

ЛАБОРАТОРНАЯ РАБОТА №4

ДИСЦИПЛИНА:

"Аппаратные средства вычислительной техники"

ТЕМА:

"Использование МК для решения задач

связанных с обеспечением безопасности"

Выполнил: студент гр. ИУК 6-71

._________________

(подпись)

Проверил:

Жарова О.Ю.  ____________________

(подпись)

Дата сдачи (защиты) лабораторной работы:

Результаты сдачи (защиты):

Количество рейтинговых баллов:

Калуга, 2022 г.

Цель работы

Сформировать навыки использования МК для решения задач авторизации.

Задачи

Написать программу реализующую задачу авторизации согласно индивидуальному заданию. Запрограммировать МК, отладить работу с использованием средств эмуляции.

Практическая часть

1) Построим следующую схему.

Рисунок 1 – Построение заданной схемы

Рисунок 2 – Неверное добавление логина и пароля

Рисунок 3 – Верное добавление логина и пароля и попытки входа

Код программы

#include <stdbool.h>

#include <avr/io.h>

#include <avr/interrupt.h>

#include "usart.h"

#define F_CPU 1000000

bool loggid1=false;

bool loggid2=false;

bool loggid3=false;

bool loggid4=false;

bool loggid5=false;

int count =0;

char login[50];

char passwords[50];

int main( void )

{

char sym;

USART_Init();

char register_MUX = ADMUX;

USART_SendChar('E');

USART_SendChar('N');

USART_SendChar('T');

USART_SendChar('E');

USART_SendChar('R');

USART_SendChar(' ');

USART_SendChar('A');

USART_SendChar('(');

USART_SendChar('+');

USART_SendChar('o');

USART_SendChar('r');

USART_SendChar('l');

USART_SendChar(')');

while(1){

sym = USART_GetChar();

USART_SendChar(sym);

if(sym=='+'){

USART_SendChar('E');

USART_SendChar('N');

USART_SendChar('T');

USART_SendChar('E');

USART_SendChar('R');

USART_SendChar(' ');

USART_SendChar('L');

USART_SendChar('O');

USART_SendChar('G');

USART_SendChar('I');

USART_SendChar('N');

USART_SendChar('<');

USART_SendChar('1');

USART_SendChar('0');

USART_SendChar('s');

int i=0;

int lenth_login;

int lenth_password;

while(i<10){

sym = USART_GetChar();

if(sym){

USART_SendChar(sym);

if (sym!='\r')

{

login[count*10+i]=sym;

USART_SendChar(sym);

i++;

}else{

lenth_login=i;

for (int j=i;j<10;j++){

login[count*10+j]='-';

}

break;

}

}

}

USART_SendChar('E');

USART_SendChar('N');

USART_SendChar('T');

USART_SendChar('E');

USART_SendChar('R');

USART_SendChar(' ');

USART_SendChar('P');

USART_SendChar('A');

USART_SendChar('S');

USART_SendChar('S');

USART_SendChar('W');

USART_SendChar('<');

USART_SendChar('1');

USART_SendChar('0');

USART_SendChar('s');

i=0;

while(i<10){

sym = USART_GetChar();

if(sym){

USART_SendChar(sym);

if (sym!='\r')

{

passwords[count*10+i]=sym;

USART_SendChar(sym);

i++;

}else{

lenth_password=i;

for (int j=i;j<10;j++){

passwords[count*10+j]='-';

}

count++;

break;

}

}

}

if(lenth_login<7||lenth_password<7){

USART_SendChar('W');

USART_SendChar('R');

USART_SendChar('O');

USART_SendChar('N');

USART_SendChar('G');

USART_SendChar(' ');

USART_SendChar('L');

USART_SendChar('E');

USART_SendChar('N');

USART_SendChar('T');

USART_SendChar('H');

USART_SendChar('<');

USART_SendChar('8');

USART_SendChar('s');

for (int j=0;j<10;j++){

login[count-1*10+j]='_';

passwords[count-1*10+j]='_';

}

count--;

}

}else if(sym == 'l'){

loggid1=true;

loggid2=true;

loggid3=true;

loggid4=true;

loggid5=true;

USART_SendChar('E');

USART_SendChar('N');

USART_SendChar('T');

USART_SendChar('E');

USART_SendChar('R');

USART_SendChar(' ');

USART_SendChar('L');

USART_SendChar('O');

USART_SendChar('G');

USART_SendChar('I');

USART_SendChar('N');

char temp_login[10];

int i=0;

while(i<10){

sym = USART_GetChar();

if(sym){

USART_SendChar(sym);

if (sym!='\r')

{

temp_login[+i]=sym;

USART_SendChar(sym);

i++;

}else{

for (int j=i;j<10;j++){

temp_login[+j]='-';

}

break;

}

}

}

USART_SendChar('E');

USART_SendChar('N');

USART_SendChar('T');

USART_SendChar('E');

USART_SendChar('R');

USART_SendChar(' ');

USART_SendChar('P');

USART_SendChar('A');

USART_SendChar('S');

USART_SendChar('S');

USART_SendChar('W');

char temp_password[10];

i=0;

while(i<10){

sym = USART_GetChar();

if(sym){

USART_SendChar(sym);

if (sym!='\r')

{

temp_password[+i]=sym;

USART_SendChar(sym);

i++;

}else{

for (int j=i;j<10;j++){

temp_password[+j]='-';

}

break;

}

}

}

for(int j=0;j<10;j++){

if(temp_login[j]!=login[j]||!loggid1||temp_password[j]!=passwords[j]){

loggid1=false;

}

if(temp_login[j]!=login[10+j]||!loggid2||temp_password[j]!=passwords[10+j]){

loggid2=false;

}

if(temp_login[j]!=login[20+j]||!loggid3||temp_password[j]!=passwords[20+j]){

loggid3=false;

}

if(temp_login[j]!=login[30+j]||!loggid4||temp_password[j]!=passwords[30+j]){

loggid4=false;

}

if(temp_login[j]!=login[40+j]||!loggid5||temp_password[j]!=passwords[40+j]){

loggid5=false;

}

}

}else{

loggid5=false;

loggid4=false;

loggid3=false;

loggid2=false;

loggid1=false;

}

if(loggid1||loggid2||loggid3||loggid4||loggid5){

USART_SendChar('W');

USART_SendChar('E');

USART_SendChar('L');

USART_SendChar('L');

USART_SendChar('C');

USART_SendChar('O');

USART_SendChar('M');

USART_SendChar('E');

}else{

}

}

return 0;

}

Вывод

В ходе выполнения лабораторной работы были сформированы навыки использования МК для решения задач авторизации.

Соседние файлы в папке АСВТ-2