В чем разница между классом DES и классом DESCryptoServiceProvider? - PullRequest
1 голос
/ 08 апреля 2010

Все, что я могу разглядеть, это то, что один из них является BC для всех алгоритмов 'DES', из которых он получен, а позже - оболочка для реализации алгоритма DES провайдером криптографических услуг.

Причина, по которой я спрашиваю, состоит в том, что я перехожу на .Net Security, и официальная учебная книга MS просто ссылается на класс DES, а другая официальная книга MS относится к классу DESCrypto. В чем разница между этими двумя? Когда бы вы использовали один из них? Что мне нужно знать относительно экзамена 70-536.

Я задаю свой вопрос из учебного заведения О.В., что касается экзамена 70-536.

Обновление:

Кто-то хочет пролить свет на собственность IV?

Ответы [ 2 ]

3 голосов
/ 08 апреля 2010

Да, класс DES является абстрактным базовым классом, DESCryptoServiceProvider является конкретной реализацией для него. Цепочка наследования немного скучна, она единственная.

Большинство классов криптографии следуют этому шаблону. задокументировано следующим образом:

Система безопасности .NET Framework реализует расширяемый шаблон наследование производного класса. иерархия выглядит следующим образом:

  • Класс типа алгоритма, такой как SymmetricAlgorithm или HashAlgorithm. Этот уровень абстрактный.
  • Класс алгоритма, который наследуется от класса типа алгоритма; например, RC2 или SHA1. Этот уровень абстрактный.
  • Реализация класса алгоритма, который наследуется от алгоритма учебный класс; например, RC2CryptoServiceProvider или SHA1Managed. Этот уровень полностью реализованы.

Используя этот шаблон производных классов, легко добавить новый алгоритм или новая реализация существующего алгоритм. Например, чтобы создать новый алгоритм с открытым ключом, вы бы наследовать от AsymmetricAlgorithm учебный класс. Создать новую реализацию конкретного алгоритма, вы бы создать неабстрактный производный класс этот алгоритм.

Не уверен, как часто кто-то фактически добавляет новый алгоритм с открытым ключом.

1 голос
/ 08 апреля 2010

Просто для пояснения: классы алгоритмов, оканчивающиеся на CryptoServiceProvider, переносят работу на встроенные криптографические библиотеки Windows; и заканчивающиеся на Managed написаны на C #.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...