Как стать автором
Обновить

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

Время на прочтение1 мин
Количество просмотров5.9K
В сети очень много сайтов для подсчета хэшей (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. В настоящий момент сервис запускает столько потоков, сколько вы выбрали файлов. Я планирую добавить возможность настраивать очередь файлов чуть позднее.
Теги:
Хабы:
Всего голосов 51: ↑48 и ↓3+45
Комментарии30

Публикации

Истории

Ближайшие события

One day offer от ВСК
Дата16 – 17 мая
Время09:00 – 18:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область