Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
З В І Т
до лабораторної роботи №2
з курсу: «СИСТЕМИ ТА ЗАСОБИ АВТЕНТИФИКАЦІЇ»
МЕТА РОБОТИ: Освоїти на практиці реалізацію процедур ідентифікації, автентифікації, реєстрації і контролю за діями користувача відповідно до його повноважень; навчитися прийомам перетворення символьного рядка в числовий код і подальшому необоротному шифруванню паролів.
Завдання:
Розробити програму, що виконує ідентифікацію і автентифікацію при вході користувачів в систему. Передбачити наявність в системі 2-х типів користувачів: - адміністраторів з можливістю перегляду журналу аудиту; - звичайних користувачів, що не мають доступу до журналу аудиту.
Код програми
FORM 1
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace login
{
public partial class Form1 : Form
{
public void af()
{
}
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// TODO: данная строка кода позволяет загрузить данные в таблицу "new_Microsoft_Access_База_данныхDataSet.Таблица1". При необходимости она может быть перемещена или удалена.
this.таблица1TableAdapter.Fill(this.new_Microsoft_Access_База_данныхDataSet.Таблица1);
}
private void button1_Click(object sender, EventArgs e)
{
int k = 0;
mitka: while (k != 1)
{
if (textBox1.Text == "" || textBox2.Text == "")
{
MessageBox.Show("Введіть лоігн/пароль");
k = 1;
goto mitka;
}
for (int i = 0; i < dataGridView1.RowCount; i++)
{
for (int j = 0; j < dataGridView1.ColumnCount; j++)
{
if (dataGridView1.Rows[i].Cells[j].Value == null)
{
MessageBox.Show("Неправильний логін або пароль");
k = 1;
goto mitka;
}
if (textBox1.Text == dataGridView1.Rows[i].Cells[j].Value.ToString())
{
dataGridView1.CurrentCell = dataGridView1.Rows[i].Cells[j];
dataGridView1.FirstDisplayedScrollingRowIndex = i;
if (textBox2.Text == dataGridView1.Rows[i].Cells[j + 1].Value.ToString())
{
k = 1;
if (dataGridView1.Rows[i].Cells[j + 2].Value.ToString() == "0")
{
MessageBox.Show("Ви авторизувались як користувач","User");
}
if (dataGridView1.Rows[i].Cells[j + 2].Value.ToString() == "1")
{
Hide();
Form2 f2 = new Form2();
f2.Show();
}
goto mitka;
}
}
}
}
}
string res = "";
int z;
byte[] asciiBytes = Encoding.ASCII.GetBytes(textBox1.Text);
int lenght = 0;
lenght = textBox1.TextLength;
for (int i = 0; i < lenght; i++)
{
z = Convert.ToInt32(asciiBytes[i]);
res += Convert.ToString(z);
}
double X = Convert.ToDouble(res);
X=anal(X);
textBox3.Text = X.ToString();
}
public double anal (double x)
{
int a1=212,a2=434,a3=229,a4=265,P=233;
//F(x) = (x7 + a1x6+ a2x5+ a3x + a4) mod P
double res;
res = (Math.Pow(x, 7) + a1 * (Math.Pow(x,6)) + a2 *(Math.Pow(x,5)) + a3*x +a4)%P;
MessageBox.Show("" + res);
return res;
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void textBox3_TextChanged(object sender, EventArgs e)
{
}
}
}
FORM 2
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace login
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Hide();
Form1 fi = new Form1();
fi.Show();
}
private void Form2_Load(object sender, EventArgs e)
{
// TODO: данная строка кода позволяет загрузить данные в таблицу "new_Microsoft_Access_База_данныхDataSet.Таблица1". При необходимости она может быть перемещена или удалена.
this.таблица1TableAdapter.Fill(this.new_Microsoft_Access_База_данныхDataSet.Таблица1);
}
private void button2_Click(object sender, EventArgs e)
{
таблица1TableAdapter.Update(new_Microsoft_Access_База_данныхDataSet);
new_Microsoft_Access_База_данныхDataSet.AcceptChanges();
}
}
}
Результат виконання
/
/
/