Была проблема по этому поводу в RxDart GitHub ( https://github.com/ReactiveX/rxdart/issues/227 ). BehaviorSubjects не воспроизводили ошибки новым слушателям.
Это было исправлено в версии 0.21.0. «Breaking Change: BehaviorSubject теперь будет выдавать ошибку, если последнее событие также было ошибкой. Раньше, когда ошибка возникала до прослушивания, подписчик не получал уведомление об этой ошибке».
Я использовал некоторые хеш-функции от следующего сайта прежде - они - обычно довольно быстрый, и полный код, дан на веб-сайте и описании каждой из функций и их преимуществ/слабых мест:
http://www.partow.net/programming/hashfunctions
Примеры данных хешей - Kernighan и Ritchie (с "Языка программирования C") и хеш Knuth (из "Искусства Объема Программирования 3").
Для проверки файлов, можно использовать контроль циклическим избыточным кодом, такой как CRC32, которые были насколько я знаю фактический стандарт для хеширования файлов в течение долгого времени в IT, если Вы хотите посмотреть на другой материал, чем MD5/SHA.
См. также этот список алгоритмов контрольной суммы для большего количества способов проверить Ваши файлы.
Википедия имеет список хеш-функций, разбитых в различные типы (контрольные суммы, non-crypto, crypto и т.д.).
Я никогда не использовал ничто больше, чем MD5. Добавьте Соль при использовании ее для паролей.