Реклама →
Считаем хэши файлов любого размера прямо в браузере
В сети очень много сайтов для подсчета хэшей (MD5, SHA1, SHA2) файлов, однако, все сервисы, что я смог найти, имеют один и тот же недостаток: размер файла ограничен. Также необходимо сначала загрузить файл на сервер, чтобы получить результат вычислений. Это очень неудобно.
Поэтому я решил создать небольшой сервис, расчет в котором будет происходить непосредственно в браузере пользователя. Нет необходимости загружать файлы на сервер (экономим трафик и время) и появляется возможность работать с файлами любого размера.
Картинка и немного информации под катом
Пользоваться сервисом очень просто, открываем страницу www.md5file.com и кидаем туда нужные файлы:
В настоящий момент вычисляются MD5, SHA1 и SHA256 хэши.
Для работы с файлами необходима поддержка браузером File API, а это значит, что в IE 9 работать не будет. Также используется Web Workers API, чтобы все расчеты производились в несколько потоков.
В последних версиях Firefox и Chrome все должно работать. Однако, как оказалось, Firefox 7.1 похоже не поддерживает клонирование объекта File в поток Worker, а Chrome transferOption в PostMessage. Пришлось немного постараться, чтобы сделать универсальное решение.
Чтобы использование оперативной памяти не увеличивалось пропорционально размеру файлов. Я переписал алгоритмы расчета хэш сумм, так, чтобы они могли рассчитывать блоками и запоминать текущее состояние. Таким образом, текущий алгоритм работы не зависит от размера файлов.
Надеюсь, этот простой сервис будет вам полезен.
P.S. В настоящий момент сервис запускает столько потоков, сколько вы выбрали файлов. Я планирую добавить возможность настраивать очередь файлов чуть позднее.
Поэтому я решил создать небольшой сервис, расчет в котором будет происходить непосредственно в браузере пользователя. Нет необходимости загружать файлы на сервер (экономим трафик и время) и появляется возможность работать с файлами любого размера.
Картинка и немного информации под катом
Пользоваться сервисом очень просто, открываем страницу www.md5file.com и кидаем туда нужные файлы:
В настоящий момент вычисляются MD5, SHA1 и SHA256 хэши.
Для работы с файлами необходима поддержка браузером File API, а это значит, что в IE 9 работать не будет. Также используется Web Workers API, чтобы все расчеты производились в несколько потоков.
В последних версиях Firefox и Chrome все должно работать. Однако, как оказалось, Firefox 7.1 похоже не поддерживает клонирование объекта File в поток Worker, а Chrome transferOption в PostMessage. Пришлось немного постараться, чтобы сделать универсальное решение.
Чтобы использование оперативной памяти не увеличивалось пропорционально размеру файлов. Я переписал алгоритмы расчета хэш сумм, так, чтобы они могли рассчитывать блоками и запоминать текущее состояние. Таким образом, текущий алгоритм работы не зависит от размера файлов.
Надеюсь, этот простой сервис будет вам полезен.
P.S. В настоящий момент сервис запускает столько потоков, сколько вы выбрали файлов. Я планирую добавить возможность настраивать очередь файлов чуть позднее.
10.11.2011 14:00+0400