вторник, 11 января 2011 г.

Криптография на VB

Часто в порграмме нужно реализовать шифрование данных.Можно сделать это с помощью разных алгоритмов шифрования, я покажу самый простой в реализации из них.

Итак, создаем новый проект.Переходим в код формы.После класса объявляем уникальные ключи.




 Теперь на главную форму добавьте:
  •  1х Textbox 
  • 2x Button 
 Соответстенно для 1 кнопки надпись "Encrypt" на второй "Decrypt"
Textbox1 понадобиться для ввода строки которую требуется зашифровать.

Теперь переходим снова к коду и пишем для кнопки1:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'Создаём экземпляр класса RijndaelManaged
Dim RMCrypto As New Security.Cryptography.RijndaelManaged


'Создаём FileStream, туда будет записана зашифрованная информация
Dim fs As New IO.FileStream("C:\crypted.dat", IO.FileMode.Create)
'Создаём CryptoStream
Dim CryptStream As New Security.Cryptography.CryptoStream(fs, RMCrypto.CreateEncryptor(Key, nbyte), Security.Cryptography.CryptoStreamMode.Write)
'Создаём StreamWriter для записи данных в CryptoStream
Dim SWriter As New IO.StreamWriter(CryptStream)
'Пишем что-нибудь в CryptoStream
SWriter.WriteLine(TextBox1.Text)
'Закрываем все объекты
SWriter.Close()
fs.Close()
CryptStream.Close()


После этой процедуры зашифрованная информация запишется в файл "C:\crypted.dat"

Чтобы раскодировать информацию для второй кнопки пишем код:

'Создаём экземпляр класса RijndaelManaged
Dim RMCrypto As New Security.Cryptography.RijndaelManaged
'Создаём FileStream, оттуда будем читать зашифрованную информацию
Dim fs As New IO.FileStream("C:\crypted.dat", IO.FileMode.Open)
'Создаём CryptoStream
Dim CryptStream As New Security.Cryptography.CryptoStream(fs, RMCrypto.CreateDecryptor(Key, nbyte), Security.Cryptography.CryptoStreamMode.Read)
'Создаём StreamReader для чтения данных из CryptoStream
Dim SReader As New IO.StreamReader(CryptStream)
'Читаем расшифрованную информацию из CryptoStream и пишем её в консоль
TextBox1.Text = SReader.ReadToEnd()
'Закрываем все объекты
SReader.Close()
fs.Close()
CryptStream.Close()


Вот и все! 




Комментариев нет:

Отправить комментарий