Поделиться через


Примеры симметричных алгоритмов

Обновлен: Ноябрь 2007

В этом примере используются классы Rijndael и TripleDESCryptoServiceProvider для реализации симметричного шифрования (с закрытым ключом), как описано в разделе Общие сведения о криптографии.

Получение примеров и инструкций по их установке

  • Выполните одно или несколько из следующих действий:

    • В меню Справка выберите пункт Примеры.

      Отобразится информация о примерах, содержащаяся в файле сведений о продукте.

    • Посетите веб-узел примеров Visual Studio 2008 Здесь содержатся самые последние версии примеров.

    • Найдите примеры на компьютере, где установлена среда Visual Studio. По умолчанию примеры и файл сведений о продукте устанавливаются в папку диск:\Program Files\Microsoft Visual Studio 9.0\Samples\lcid. Для выпусков Express продукта Visual Studio все примеры располагаются в Интернете.

Дополнительные сведения см. в разделе Поиск файлов примеров.

xyw550zf.alert_security(ru-ru,VS.90).gifПримечание о безопасности.

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

Для запуска этого примера

  • Нажмите клавишу F5.

Демонстрации

Класс SampleCrypto инкапсулирует алгоритм шифрования, salt-строку (случайное число или текст, которые добавляются к данным во время шифрования с помощью пароля) и вектор инициализации (IV), подпрограммы шифрования и расшифровки, которые определяют один зашифрованный файл. Конструктор принимает один параметр, определяющий тип шифрования, Rijndael или TripleDES. Соответствующее поле в классе, crpSym, имеет абстрактный тип SymmetricAlgorithm. Ему присваивается экземпляр класса Rijndael или класса TripleDESCryptoServiceProvider. Метод CreateSaltIVFile сохраняет значения salt-строки и вектора инициализации в файл .dat. Методы Decrypt и Encrypt обрабатывают исходный файл, указанный в свойстве SourceFileName.

Один экземпляр класса SampleCrypto создается при загрузке формы. Элемент управления в форме демонстрирует методы и свойства класса SampleCrypto. Когда элемент управления Шифрование с паролем выбран, ключ не создается и не устанавливается автоматически, а получается из пароля, который использовался при шифровании с salt-строкой. Более того, salt-строка и вектор инициализации (IV) остаются в незашифрованном виде в файле .dat. Этот способ показывает, как можно было бы отправить документ кому-либо: зашифрованный документ можно отправить через ненадежное проводное соединение, а файл .dat и пароль можно передать безопасным способом с помощью асимметричного (с открытым ключом) шифрования. Этот тип шифрования является наиболее безопасной формой шифрования, но требует намного больше времени для обработки. Именно поэтому он обычно используется для небольших элементов, таких как закрытый ключ, файл с salt-строкой/вектор инициализации или пароль.

См. также

Основные понятия

Модель криптографии .NET Framework

Ссылки

TripleDESCryptoServiceProvider

Rijndael

SymmetricAlgorithm

Salt

IV