Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab-Security.docx
Скачиваний:
7
Добавлен:
01.05.2025
Размер:
1 Мб
Скачать
☆

Практическая работа №2 Работа с хэш-функциями

Цель работы: научиться работать с алгоритмами для вычисления хэш-функций MD5, SHA-1, SHA-256, SHA-384 и SHA-512.

Выполнение практической работы

Во время выполнения практической работы необходимо написать программу, которая позволяет вычислять следующие хэш-функции введенного в текстовое окно исходного текста:

  1. MD5.

  2. SHA-1.

  3. SHA-256.

  4. SHA-384.

  5. SHA-512.

Рис. 2.1. Внешний вид приложения для работы с хэш-функциями.

  1. Спроектировать графический интерфейс приложения.

  2. Текстовые окна ReadOnly = True

Листинг 2.1.

Imports System.Security.Cryptography

Imports System.Text

Public Class frmHash

''' Вычисляем хэш

Private Sub cmdHash_Click(sender As System.Object, _

e As System.EventArgs) Handles cmdHash.Click

If txtSourceText.Text.Length = 0 Then

'Выводим сообщением, что окно пустое

MessageBox.Show("Введите исходный текст")

Else

'считываем исходный текст из текстового окна

Dim SourceText As String = txtSourceText.Text

'-------------------MD5-------------------------

'объявляем крипто-провайдер

Dim md5Provider As New MD5CryptoServiceProvider

'объявляем строковую переменную и рассчитываем MD5-хэш

Dim MD5Hash As String = Convert.ToBase64String(_

md5Provider.ComputeHash(UTF8Encoding.UTF8.GetBytes(_

SourceText)))

'Выводим хэш в текстовое окно

txtMD5.Text = MD5Hash

'-------------------SHA-1-------------------------

'объявляем менеджер SHA-1

Dim SHA1Manager As New SHA1Managed

'объявляем строковую переменную и рассчитываем SHA-1-хэш

Dim SHA1Hash As String = Convert.ToBase64String(_

SHA1Manager.ComputeHash(UTF8Encoding.UTF8.GetBytes(_

SourceText)))

'Выводим хэш в текстовое окно

txtSHA1.Text = SHA1Hash

'-------------------SHA-256-------------------------

'объявляем менеджер SHA-256

Dim SHA256Manager As New SHA256Managed

'объявляем строковую переменную и рассчитываем SHA-256-хэш

Dim SHA256Hash As String = Convert.ToBase64String(_

SHA256Manager.ComputeHash(UTF8Encoding.UTF8.GetBytes(_

SourceText)))

'Выводим хэш в текстовое окно

txtSHA256.Text = SHA256Hash

'-------------------SHA-384-------------------------

'объявляем менеджер SHA-384

Dim SHA384Manager As New SHA384Managed

'объявляем строковую переменную и рассчитываем SHA-256-хэш

Dim SHA384Hash As String = Convert.ToBase64String(_

SHA384Manager.ComputeHash(UTF8Encoding.UTF8.GetBytes(_

SourceText)))

'Выводим хэш в текстовое окно

txtSHA384.Text = SHA384Hash

'-------------------SHA-512-------------------------

'объявляем менеджер SHA-512

Dim SHA512Manager As New SHA512Managed

'объявляем строковую переменную и рассчитываем SHA-512-хэш

Dim SHA512Hash As String = Convert.ToBase64String(_

SHA512Manager.ComputeHash(UTF8Encoding.UTF8.GetBytes(_

SourceText)))

'Выводим хэш в текстовое окно

txtSHA512.Text = SHA512Hash

End If

End Sub

''' Очищаем текстовые окна

Private Sub cmdClear_Click(sender As System.Object, _

e As System.EventArgs) Handles cmdClear.Click

txtSourceText.Clear()

txtMD5.Clear()

txtSHA1.Clear()

txtSHA256.Clear()

txtSHA384.Clear()

txtSHA512.Clear()

End Sub

''' Выход

Private Sub cmdExit_Click(sender As System.Object, _

e As System.EventArgs) Handles cmdExit.Click

Application.Exit()

End Sub

End Class

Вопросы к практической работе

  1. Опишите принципы работы асимметричных алгоритмов шифрования.

  2. Приведите примеры наиболее распространенных асимметричных алгоритмов шифрования.

  3. Опишите, для каких целей используются открытый и закрытый ключи шифрования.

  4. Опишите предназначение класса RSACryptoServiceProvider.

  5. Опишите работу функций Encrypt и Decrypt класса RSACryptoServiceProvider.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]