Здравствуйте, Алексей Остапенко, Вы писали:
АО>Статья :
АО>Вариант с 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));
Здравствуйте, 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 выдает не хеш.

Надо будет поправить этот момент на досуге.
Здравствуйте, Lexey, Вы писали:
L>Ты прав. В сожалению, в старых доках как-то умолчали, что TransformFinalBlock выдает не хеш.
L>Надо будет поправить этот момент на досуге.
Хотя не, похоже вру. Глюк возник в процессе выдирания куска из примера. Пример был рабочим, а выдранный кусок получился кривым.
Столкнулся з розкодированием с помощю RSACryptoServiceProvider RSAшки созданой на CryptoAPI.
Очень помогла следующая статься —
http://blogs.msdn.com/shawnfa/archive/2005/12/05/500144.aspx
Кстати, на сегодняшний день, максимальный масив байт который может закодировать RSACryptoServiceProvider — 117. И разкодировать тоже может . У меня Framework 3.5 SP1.