Считаем хэши файлов любого размера прямо в браузере

10 Ноя
2011

В сети очень много сайтов для подсчета хэшей (MD5, SHA1, SHA2) файлов, однако, все сервисы, что я смог найти, имеют один и тот же недостаток: размер файла ограничен. Также необходимо сначала загрузить файл на сервер, чтобы получить результат вычислений. Это очень неудобно.

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

Картинка и немного информации под катом

Пользоваться сервисом очень просто, открываем страницу www.md5file.com и кидаем туда нужные файлы:

image

В настоящий момент вычисляются MD5, SHA1 и SHA256 хэши.

Для работы с файлами необходима поддержка браузером File API, а это значит, что в IE 9 работать не будет. Также используется Web Workers API, чтобы все расчеты производились в несколько потоков.

В последних версиях Firefox и Chrome все должно работать. Однако, как оказалось, Firefox 7 похоже не поддерживает клонирование объекта File в поток Worker, а Chrome transferOption в PostMessage. Пришлось немного постараться, чтобы сделать универсальное решение.

Чтобы использование оперативной памяти не увеличивалось пропорционально размеру файлов. Я переписал алгоритмы расчета хэш сумм, так, чтобы они могли рассчитывать блоками и запоминать текущее состояние. Таким образом, текущий алгоритм работы не зависит от размера файлов.

Надеюсь, этот простой сервис будет вам полезен.

P.S. В настоящий момент сервис запускает столько потоков, сколько вы выбрали файлов. Я планирую добавить возможность настраивать очередь файлов чуть позднее.
По материалам Хабрахабр.



загрузка...

Комментарии:

Наверх