Согласно построенной базе данных и информации о работниках фирмы можно раздать частные пароли. Допустим, в какой-либо организации
В электронной подписи нуждаются следующие работники: директор, главный бухгалтер и кассир.
1. ФИО Иванов И. И., должность директор, частный пароль (рис 2.3.1):
hXgtLPIhfo3Bf0HKFh9xjO4q6e+W49OGaf4hI4KCafM2aJyIMhAsjpPBkf6wuVtEKo3UphNiyxN3a4rObnC9qoET4kCo7ForiU1X0skKdcTaQI3xJVGlnzTa5digUSj8Kf3BWm4wVob0k4vEGYYnaqNgEHWwmo8G9m3oeu4fPxk=
Рисунок 2.3.1 – Электронная подпись «Директор»
2. ФИО-, Петрова Е. С., должность – главный бухгалтер, частный пароль (рис 2.3.2):
LUJ7YOPzE7DC+w46ekw3smgacVYCfFA0X9Cx/fVUzxZ0iYnB0M62vrZfSJsj4qbMqFK7fV4HVXpjv2ycOU+SMnVT+V+DIHvxPuij3hYPW+qYfuJbET9E8wlVG6LCer6dANFHEkgVfVfpuqtPEjDk8bH/37zvkJAMLNmRsjgYmDQ=
Рисунок 2.3.2 – Электронная подпись «Главбух»
2. ФИО-, Харитонова В. А., должность – кассир, частный пароль (рис 3.3.3):
BOJLrHc8sDx2rbg08UWzIfOii1e8cqd23h6yae9sZ+1of11yT+/6Ae9vlo9ogU5UUBIAgH936S4SwQwywCdRmJRDa4Glz3wMX7giHfEVlK5ndliZXln9TlCoAzRREhn4jh1Bb3Emy+OrnBygzD8dqQB768HUuMzCt8jWAhEoAXc=
Рисунок 2.3.3 – Электронная подпись «Кассир»
Согласно веденным данным в поле «Введите текст для подписи» формируется уникальный код, который соответствует имени и должности работника, этот параметр можно менять по своему желанию, однако должна существовать единая форма подписи. Генерировать подпись можно несколько раз, при этом подпись в дешифрованном виде не изменится в зависимости от ключа. Это обеспечивает дополнительную защиту, в том случае если третьим лицам каким-то образом получится узнать код соответствующий подписи.
Генерация ЭЦП включает ряд этапов
Private Sub Button1_Click_1(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
If Me.TxtPlainText.Text = "" Then
MsgBox("Please enter a string to sign", MsgBoxStyle.Information)
Exit Sub
End If
' Конвертация строковых данных в массив байт
toEncrypt = enc.GetBytes(TxtPlainText.Text)
' Шифрование данных с использованием публичного ключа получателя
encrypted = mySender.EncryptData(myReceiver.PublicParameters, toEncrypt)
' конвертирование вывода в base64/Radix
TextBox2.Text = Convert.ToBase64String(encrypted)
Me.Button2.Enabled = True
Формирование закрытого ключа
Private Sub Button2_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
' Хэширование шифрованных данных и генерация блока подписи в хэше
' using the sender's private key. (Signature Block)
signature = mySender.HashAndSign(encrypted)
' конвертирование вывода в base64/Radix
TextBox3.Text = Convert.ToBase64String(encrypted)
Me.Button3.Enabled = True
Проверка ЭЦП
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
' Проверка подписи реализуется через аутентификацию с использованием
' публичного (открытого) ключа отправителя (дешифровка блока подписи)
If myReceiver.VerifyHash(mySender.PublicParameters, _
encrypted, signature) Then
MsgBox("Signature Valid", MsgBoxStyle.Information)
Button4.Enabled = True
Else
MsgBox("Invalid Signature", MsgBoxStyle.Exclamation)
Button4.Enabled = False
End If
End Sub
Помимо приведенной выше программы по созданию и проверке ЭЦП, информационная система подразумевает наличие базы данных.
Система управления базой данных имеет следующий вид (рис 2.3.4):
Рисунок 2.3.4 – Система управления базой данных
С помощью этого приложения у программиста есть возможность добавления нового клиента ЭЦП, реализация соединения базы данных и языка программирования (Microsoft Visual Basic 2008 Express Edition) реализуется следующим образом:
С помощью меню Data указывается путь к ранее созданной базе данных. Далее необходимо добавить компоненты: DataSet, DataGrindView, BindingNavigator, последний создает строку меню, добавлением стандартных элементов меню, получаем возможность работы с базой данных, для сохранения результатов вводим следующий код:
Private Sub SaveToolStripButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaveToolStripButton.Click
Validate()
КлиентBindingSource.EndEdit()
КлиентTableAdapter.Update(ЭцпDataSet1.клиент)
End Sub
Переход между СУБД и рабочей формой осуществляется следующим образом:
Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
Form3.Show()
End Sub
Достарыңызбен бөлісу: |