Модераторы: diadiavova, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Шифрование 
:(
    Опции темы
YoD
Дата 26.12.2004, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 29.11.2004

Репутация: нет
Всего: нет



Подскажите пожалуйста, как можно зашифровать (синхронным шифрование) и потом расшифровать:

а). Содержимое тестовой переменной
б). Файла
PM MAIL ICQ   Вверх
[Last]Wizard
Дата 27.12.2004, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 20.7.2004
Где: Минск, Беларусь

Репутация: 2
Всего: 10



В пространстве имен System.Security.Cryptography реализована масса алгоритмов шифрования/дешифрования данных, такие как DES, RSA, алгоритмы электронно-цифровой подписи DSA, SHA-1, SHA-256, SHA-384, SHA-512, MD5, а также еще много интересного.

PM ICQ   Вверх
YoD
Дата 27.12.2004, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 29.11.2004

Репутация: нет
Всего: нет



Это я нашёл. Но разобраться с многообразием не смог.

Всё что я освоил это:

dim Enc as system.security.cryptography.simmetricalgorithm
enc.createencriptor()

А что дальше делать - незнаю... если кто разобрался - киньте плиз какой-нибудь рабочий исходник.

Всё равно спасибо за информацию
PM MAIL ICQ   Вверх
[Last]Wizard
Дата 27.12.2004, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 20.7.2004
Где: Минск, Беларусь

Репутация: 2
Всего: 10



В общем картина такова:

1. Класс System.Security.Cryptography.SymmetricAlgorithm - это абстрактный класс, базовый для симметричных алгоритмов шифрования, таких как DES и другие. Есть еще класс System.Security.Cryptography.AsymmetricAlgorithm - базовый для асимметричных алгоритмов (RSA, DSA, и др.) Класс абстрактный (MustInherit) - следовательно создать его экземпляр напрямую нельзя.

* Симметричные алгоритмы - те, которые шифруются и дешифруются одним и тем же ключом, Асимметричные алгоритмы - системы с открытым (public) и секретным (private) ключами.

2. Доступ к реализациям конкретных алгоритмов производится с помощью классов-наследников, которые называются System.Security.Cryptography.XXXCryptoServiceProvider, где XXX - название алгоритма. Например System.Security.Cryptography.DESCryptoServiceProvider.

3. Шифрование файлов и любых других потоков производится с помощью класса System.Security.Cryptography.CryptoStream. Это класс - наследник от System.IO.Stream - предоставляет интерфейс для записи и чтения данных из этого потока. Для того, чтобы создать объект этого класса, необходимо указать реальный поток, куда будут записываться данные или откуда они будут считываться (например файл), шифратор/дешифратор, который будет непосредственно шифровать/дешифровать данные, а также режим использования потока (чтение или запись).

4. Для того, чтобы получить шифратор/дешифратор необходимо вызвать метод CreateEncryptor() или CreateDecryptor() класса System.Security.Cryptography.XXXCryptoServiceProvider. Эти методы возвращают ссылку на интерфейс System.Security.Cryptography.ICryptoTransform, реализация которого зависит от выбраного алгоритма шифрования.

5. Для шифрования статических данных (не файлов) можно использовать реализацию методов TransformBlock() и TransformFinalBlock() интерфейса System.Security.Cryptography.ICryptoTransform.

6. Рабочий исходник:

Код
   Private Sub EncryptData(ByVal inName As String, ByVal outName As String)

       'Create the file streams to handle the input and output files.
       Dim fin As New FileStream(inName, FileMode.Open, FileAccess.Read)
       Dim fout As New FileStream(outName, FileMode.OpenOrCreate, FileAccess.Write)
       fout.SetLength(0)

       'Create variables to help with read and write.
       Dim bin(4096) As Byte 'This is intermediate storage for the encryption.
       Dim rdlen As Long = 0 'This is the total number of bytes written.
       Dim totlen As Long = fin.Length 'Total length of the input file.
       Dim len As Integer 'This is the number of bytes to be written at a time.
       Dim des As New DESCryptoServiceProvider
       Dim encStream As New CryptoStream(fout, des.CreateEncryptor(), CryptoStreamMode.Write)

       Console.WriteLine("Encrypting...")

       'Read from the input file, then encrypt and write to the output file.
       While rdlen < totlen
           len = fin.Read(bin, 0, 4096)
           encStream.Write(bin, 0, len)
           rdlen = Convert.ToInt32(rdlen + len / des.BlockSize * des.BlockSize)
           Console.WriteLine("Processed {0} bytes, {1} bytes total", len, rdlen)
       End While

       encStream.Close()
   End Sub

PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума VB .NET
diadiavova
  • Прежде чем задать вопрос, воспользуйтесь поиском: возможно Ваш вопрос уже обсуждался и на него был получен ответ.
  • Если такой же вопрос не найден, не стоит задавать свой вопрос в любую тему, создайте новую.
  • Заголовок темы должен отображать ее суть.
  • Содержание поста должно описывать проблему понятно, но в то же время, по возможности, лаконично. Сначала следует описать суть вопроса, потом можно привести пример кода, не вынуждайте других участников угадывать в чем Ваша проблема - телепатов здесь нет.
  • Будьте взаимно вежливы и дружелюбны.
  • При оформлении сообщений используйте форматирование, примеры кода заключайте в теги [CODE=vbnet][/CODE].
  • Также ознакомьтесь с общими правилами, действующими на всем форуме.
  • Если вопрос решен, не забывайте помечать тему решенной(вверху темы есть ссылка). Кроме того, если Вы хотите отблагодарить участников, оказавших помощь в решении, можно повысить им репутацию, в случае, если у Вас менее 100 сообщений в форуме и функция изменения репутации Вам недоступна, можете написать сюда.
  • Общие вопросы по программированию на платформе .NET обсуждаются здесь.
  • Литература по VB .NET обсуждается здесь.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB .NET | Следующая тема »


 




[ Время генерации скрипта: 0.1854 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.