Хеширование, шифрование и цифровая подпись с использованием
От: Алексей Остапенко Россия  
Дата: 26.04.03 19:29
Оценка: 195 (11) +1
Статья :
Хеширование, шифрование и цифровая подпись с использованием CryptoAPI и .NET
Автор(ы): Алексей Остапенко
Дата: 09.10.2002
Статья посвящена аспектам использования CryptoAPI и криптографических классов .NET CLR в прикладных программах. Приведены краткие пояснения по сущности алгоритмов шифрования и хеширования. Статья содержит примеры использования алгоритмов 3DES, RSA, MD5, SHA


Авторы :
Алексей Остапенко

Аннотация :
Статья посвящена аспектам использования CryptoAPI и криптографических классов .NET CLR в прикладных программах. Приведены краткие пояснения по сущности алгоритмов шифрования и хеширования.Статья содержит примеры использования алгоритмов 3DES, RSA, MD5, SHA
Клёвая статья
От: adontz Грузия http://adontz.wordpress.com/
Дата: 27.04.03 19:29
Оценка: -1
Очень понравилась
A journey of a thousand miles must begin with a single step © Lau Tsu
Re: простая опреация шифрования.
От: SVV Беларусь  
Дата: 26.09.03 08:33
Оценка:
Здравствуйте, Алексей Остапенко:

Задача:
надо зашифровать последовательность (неважно какую) (3)DES ключом: 11 12 13 14 15 16 17 18 21 22 23 24 25 26 27 28 (байты).

Проблема:
Не знаю как импортировать такой ключ, т.к. не знаю структуру keyBlob для (3)DES ключа.
(надо для функции CryptImportKey, параметр 2)

заранее благодарен.
Re: Хеширование, шифрование и цифровая подпись с использован
От: Alex57  
Дата: 11.02.06 09:18
Оценка:
Здравствуйте, Алексей Остапенко, Вы писали:

АО>Статья :


АО>Вариант с TransformBlock:

ha=(HashAlgorithm)new SHA1CryptoServiceProvider();
while((len=ins.Read(inbuf,0,MaxRSABlockSize))==MaxRSABlockSize) //читаем файл поблочно
{
    ha.TransformBlock(inbuf,0,MaxRSABlockSize,outbuf,0); //считаем хеш от блока данных
}
byte []hash=ha.TransformFinalBlock(inbuf,0,len); //досчитываем хеш от последнего куска

В hash будет содержимое inbuf, необходимо видимо ha.hash

SHA256Managed shaManual = new SHA256Managed();
shaManual.TransformBlock(subBlock1, 0, subBlock1.Length, subBlock1, 0);
shaManual.TransformBlock(subBlock2, 0, subBlock2.Length, subBlock2, 0);
shaManual.TransformFinalBlock(subBlock3, 0, subBlock3.Length);
Console.WriteLine(Convert.ToBase64String(shaManual.Hash));
Re[2]: Хеширование, шифрование и цифровая подпись с использо
От: Lexey Россия  
Дата: 17.02.06 00:39
Оценка:
Здравствуйте, Alex57, Вы писали:

АО>>Вариант с TransformBlock:

A>
A>ha=(HashAlgorithm)new SHA1CryptoServiceProvider();
A>while((len=ins.Read(inbuf,0,MaxRSABlockSize))==MaxRSABlockSize) //читаем файл поблочно
A>{
A>    ha.TransformBlock(inbuf,0,MaxRSABlockSize,outbuf,0); //считаем хеш от блока данных
A>}
A>byte []hash=ha.TransformFinalBlock(inbuf,0,len); //досчитываем хеш от последнего куска
A>

A>В hash будет содержимое inbuf, необходимо видимо ha.hash

Ты прав. В сожалению, в старых доках как-то умолчали, что TransformFinalBlock выдает не хеш.
Надо будет поправить этот момент на досуге.
Re[3]: Хеширование, шифрование и цифровая подпись с использо
От: Lexey Россия  
Дата: 17.02.06 01:02
Оценка:
Здравствуйте, Lexey, Вы писали:

L>Ты прав. В сожалению, в старых доках как-то умолчали, что TransformFinalBlock выдает не хеш.

L>Надо будет поправить этот момент на досуге.

Хотя не, похоже вру. Глюк возник в процессе выдирания куска из примера. Пример был рабочим, а выдранный кусок получился кривым.
Re[2]: может кому поможет
От: RredCat Украина http://rredcat.blogspot.com/
Дата: 17.09.09 14:27
Оценка:
Столкнулся з розкодированием с помощю RSACryptoServiceProvider RSAшки созданой на CryptoAPI.
Очень помогла следующая статься — http://blogs.msdn.com/shawnfa/archive/2005/12/05/500144.aspx
Кстати, на сегодняшний день, максимальный масив байт который может закодировать RSACryptoServiceProvider — 117. И разкодировать тоже может . У меня Framework 3.5 SP1.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.