Расчет хэша MD5 частичного потока

У меня есть большой набор данных (~ 1 ГБ), хранящийся в настраиваемом формате файла, последние 16 байтов которого являются хешем MD5 всех предыдущих байтов файл.

Я хочу проверить MD5 этого файла на соответствие встроенному MD5 с помощью HashAlgorithm.ComputeHash (Stream), однако при этом будет вычислен хэш всего файла, ВКЛЮЧАЯ хеш в последних 16 байтах, что, очевидно, не сработает.

Как вычислить MD5-хэш ЧАСТИ потока? Я знаю, что могу прочитать поток в массив и передать его в HashAlgorithm.ComputeHash (байты), однако накладные расходы на дублирование этого 1 ГБ данных в памяти недопустимы.

7
задан Satellite 18 May 2011 в 07:12
поделиться