2014-01-26 3 views
3

Я использую:Hash выход CryptoStream

cryptoStream.Write(buffer, 0, bytesRead); 

и хотите его хэш. Если я использую:

hash.TransformBlock(buffer, 0, bytesRead, null, 0); 

Это будет (предположительно) хеш-вход, а не зашифрованный буфер.

Как сделать хэш-вывод буфер?

+0

Почти такой же вопрос, как и тот, с которым я связан, но поскольку вы явно не запрашивали поток, поэтому я думаю, что все в порядке. –

ответ

0

Хеш-функции имеют внутреннее состояние. Вам не нужен одновременный доступ к буферу ввода для создания хэша по данным; вы также можете использовать поток.

This answer объясняет, как вычислить хэш с помощью потока (обратите внимание на сходство вопроса). Также обратите внимание, что вопрос, вероятно, содержит наиболее полный ответ.

+0

Спасибо, что указали мне на _question_. Я видел это, но смотрел на ответ, который мне не помогает. Теперь я вижу, что сам вопрос упоминает «цепочку» потоков и подачу вывода одного потока записи в другой. Я должен это проверить. Выглядит неплохо ... – ispiro

+0

... С другой стороны - я все еще остаюсь с вопросом, потому что OP там просто пишет один раз, а я пишу много раз - будет ли хэш всего потока или только последний буфер пишет? – ispiro

+0

Поток не будет полезен, если он работает только для одной записи ... Почему бы не попробовать и написать поток в файл (как в этом примере), тогда вы всегда можете сравнить хэши с помощью утилиты командной строки или простого графического интерфейса расширение приложения/проводника для создания хэшей над двоичными файлами. –

Смежные вопросы