Яндекс.Метрика

    Реклама

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

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

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

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

    image

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

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

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

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

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

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