Интернет магазин китайских планшетных компьютеров



Компьютеры - Криптосервисы .NET Framework - Хэширующие алгоритмы

28 апреля 2011


Оглавление:
1. Криптосервисы .NET Framework
2. Алгоритмы шифрования
3. Обмен симметричными ключами
4. Хэширующие алгоритмы
5. Цифровая подпись
6. Ограничения



Пространство имен Cryptography содержит базовый класс HashAlgorithm и производные классы, поддерживающие алгоритмы MD5, SHA1, SHA256, SHA384 и SHA512. Алгоритм MD5 дает 128 битный хэш, a SHA1 — 160 битный. Числа в названиях других версий SHA-алгоритмов соответствуют длине создаваемых ими хэшей. Чем больше хэш, тем надежнее алгоритм и тем труднее его взломать. Все эти алгоритмы реализованы в двух версиях: на основе управляемого и неуправляемого кода.

HashAlqorithm
|— KeyedHashAlgorithm
|      |— HMACSHA1
|      |— MACTripleDES
|— MD5
|      |— MD5CryptoServiceProvider
|— SHA1
|      |— SHA1CryptoServiceProvider
|      |— SHA1Managed
|— SHA256
|      |— SHA256Managed
|— SHA384
|      |— SHA384Managed
|— SHA512
|      |— SHA512Managed
Иерархия хэширующих алгоритмов

Чтобы вычислить дайджест, нужно просто создать экземпляр класса алгоритма хэширования и вызвать его перегруженный метод ComputeHash, наследуемый от HashAlgorithm:

FileStream fsData = new FileStream;
Byte digest;
SHA512Managed oSHA = new SHA512Managed);
fsKey.Close

Здесь методу ComputeHash передается объект Stream, но он принимает и байтовый массив. В пространстве имен Cryptography также имеется абстрактный класс KeyedHashAlgorithm. Алгоритмы, реализованные в классах HMACSHA1 и MACTripleDES, производных от KeyedHashAlgorithm, позволяют генерировать Message Authentication Codes. С помощью MAC можно определить, были ли модифицированы данные, переданные по незащищенному каналу связи, — при условии, что и отправитель, и получатель используют общий секретный ключ.



Просмотров: 6823


<<< Криптос
Криптосистема >>>