У меня есть программа, которая будет использоваться на очень больших файлах (текущие тестовые данные - 250 ГБ). Мне нужно уметь вычислять хэши MD5 и SHA1 для этих файлов. В настоящее время мой код переносит поток в MD5.Create(). ComputeHash (поток потока), а затем тот же для SHA1. Они, насколько я могу судить, читают файл в 4096-байтовых блоках в буфер, внутренний для хэш-функции, до конца потока.Как я могу вычислить два хэша, не читая один и тот же файл дважды?
Проблема в том, что это один за другим занимает ОЧЕНЬ долгое время! Есть ли способ передать данные в буфер и предоставить буфер для BOTH алгоритмов перед чтением нового блока в буфер?
Пожалуйста, объясните подробно, поскольку я не опытный кодер.
Прочтите его по блоку и подайте данные в свои собственные алгоритмы дайджеста в тандеме – sehe
Проверьте: http://stackoverflow.com/questions/14610850/how-to-get-file-both-md5-and-sha1-checksum- at-the-same-time-when-upload-a-new-fi (java) – PunKeel
Возможный дубликат http://stackoverflow.com/questions/7832440/is-hashalgorithm-computehash-stateful –