Pull to refresh

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

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

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

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

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

image

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

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

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

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

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

P.S. В настоящий момент сервис запускает столько потоков, сколько вы выбрали файлов. Я планирую добавить возможность настраивать очередь файлов чуть позднее.
Tags:
Hubs:
+45
Comments 30
Comments Comments 30

Articles