- •Практическая работа №1 Практическое использование элементов управления RichTextBox, ToolStrip, OpenFileDialog и SaveFileDialog
- •Практическая работа №2 Работа с хэш-функциями
- •Практическая работа №3 Работа с асимметричным криптографическим алгоритмом rsa
- •Практическая работа №4 Работа с симметричным криптографическим алгоритмом aes (Rijndael)
- •Практическая работа №5 Тестирование программного обеспечения
- •1. Общее описание процесса тестирования
- •2. Тест-план
- •3. Тест-стратегия
- •Критерии оценки usability системы
- •Сводная информация по тестированию
- •4. Отчетная документация
- •Практическая работа №6 Создание модульных тестов для автоматизированного тестирования исходного кода программного обеспечения
- •1. Аргументы в пользу модульных тестов
- •2. Аргументы против модульных тестов
- •3. Рекомендации по созданию модульных тестов
- •4. Разработка через тестирование
- •5. Добавление теста
- •11. Преимущества
- •12. Недостатки
- •13. Рекомендации по созданию модульных тестов
- •Литература
Практическая работа №2 Работа с хэш-функциями
Цель работы: научиться работать с алгоритмами для вычисления хэш-функций MD5, SHA-1, SHA-256, SHA-384 и SHA-512.
Выполнение практической работы
Во время выполнения практической работы необходимо написать программу, которая позволяет вычислять следующие хэш-функции введенного в текстовое окно исходного текста:
MD5.
SHA-1.
SHA-256.
SHA-384.
SHA-512.
Рис. 2.1. Внешний вид приложения для работы с хэш-функциями.
Спроектировать графический интерфейс приложения.
Текстовые окна 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
Вопросы к практической работе
Опишите принципы работы асимметричных алгоритмов шифрования.
Приведите примеры наиболее распространенных асимметричных алгоритмов шифрования.
Опишите, для каких целей используются открытый и закрытый ключи шифрования.
Опишите предназначение класса RSACryptoServiceProvider.
Опишите работу функций Encrypt и Decrypt класса RSACryptoServiceProvider.
