
АСВТ-2 / Lab_4_ASVT
.docx
|
Министерство науки и высшего образования Российской Федерации Калужский филиал федерального государственного бюджетного образовательного учреждения высшего образования «Московский государственный технический университет имени Н.Э. Баумана (национальный исследовательский университет)» (КФ МГТУ им. Н.Э. Баумана) |
ФАКУЛЬТЕТ |
ИУК "Информатика и управление" |
КАФЕДРА |
ИУК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;
}
Вывод
В ходе выполнения лабораторной работы были сформированы навыки использования МК для решения задач авторизации.