Integrity Checker — работа с хеш-суммами выделенных файлов

Здесь можно обсудить ваш любимый плагин.
Ariman
Posts: 1153
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 10 times
Been thanked: 23 times
Contact:

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by Ariman » Wed 10 Nov, 2010 14:58

Анонс

Хотелки от пользователей:
  • работа с плагиновыми панелями, на которых реальные файлы
  • генерация одновременно нескольких хешей для файла
  • возможность сравнить вновь вычисленный хэш с предыдущим
  • сравнить хэш с содержимым клипборда
  • запуск генератора через префикс
  • возможность использовать upper case для шестнадцатеричного вывода
  • сохранение в лог ошибок при генерации
  • поддержка выбора кодировки для файлов хеш-листов
  • опция 1 хеш файл на 1 каталог
Last edited by Ariman on Thu 04 Aug, 2016 08:29, edited 8 times in total.

User avatar
Alexander84
Posts: 81
Joined: Fri 01 May, 2009 06:38
Has thanked: 6 times

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by Alexander84 » Thu 01 Dec, 2016 21:30

Latest post of the previous page:

Т.е. библиотека чужая, а вы автор обвязки для Фара? Понял.

Тогда снимаю вопрос, зачем тут SHA512 и тем более Whirlpool — криптохэши, скорость вычисления и визуальная длина которых малопригодны (а потому и мало распространены) для проверки целостности файлов (эти алгоритмы чаще используют для паролей и подписей). Реально востребованы CRC32 (жаль нет более современного и менее прожорливого CRC32C), MD5, SHA1, с натяжкой SHA256 и BLAKE2SP-256.

Теперь основное замечание после месяца использования. Существенный плюс Фара заключён в псевдографическом интерфейсе, где отвлекающие внимание свистелки и перделки редуцированы до необходимого рабочего минимума, который дался в многочасовых спорах и был отполирован сотней багфиксов. А от окна плагина Integrity Checker реально болит голова и устают глаза, словно смотришь на неисправный монитор, по которому бегут полосы, ведь каждая строчка при обсчёте файлов дёргается туда-сюда! (см. скринкаст, 1 Мб)

Да, Ariman, я предлагаю перерисовать окно операции, взяв за образец окна копирования и архивирования. И начать с того, чтобы заголовок был не Processing, а само название операции, скажем, Generating hash (CRC32). И, кстати, в режиме проверки файлов (скажем, после активации плагина на .sfv) хорошо бы менять заголовок на Verifying, ибо иногда теряешься: запустил ты генерацию или всё же проверку.

Мегамонстр
Posts: 52
Joined: Fri 24 Aug, 2012 15:24

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by Мегамонстр » Fri 02 Dec, 2016 06:19

Ура! Сайт заработал!

Я тоже считаю, что xxHash должен иметь место в этом плагине. Я скачал исходники xxhsum, скомпилил и не встретил никаких проблем с ними. Не видел исходников плагина, но думаю, что вставить код не представит проблем.

Ariman
Posts: 1153
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 10 times
Been thanked: 23 times
Contact:

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by Ariman » Fri 02 Dec, 2016 14:46

Alexander84 wrote:Т.е. библиотека чужая, а вы автор обвязки для Фара? Понял.
При хорошем разнообразии библиотек писать свою как-то глупо. Используется у меня RHash.
Alexander84 wrote:Тогда снимаю вопрос, зачем тут SHA512 и тем более Whirlpool — криптохэши, скорость вычисления и визуальная длина которых малопригодны (а потому и мало распространены) для проверки целостности файлов (эти алгоритмы чаще используют для паролей и подписей). Реально востребованы CRC32 (жаль нет более современного и менее прожорливого CRC32C), MD5, SHA1, с натяжкой SHA256 и BLAKE2SP-256.
Ну SHA256 сейчас стал хорошо распространятся во всяких Unix системах.
Добавление алгоритма в плагин, из уже имеющихся в библиотеке, по сути, требует только изменений в интерфейсе. Так что выбор того что использовать не был чем-то глубоко продуманным, выбрал то что посчитал полезным. Если бы их требовалось внедрять по отдельности, то другой вопрос.
Alexander84 wrote:ведь каждая строчка при обсчёте файлов дёргается туда-сюда!
Дергание происходит от того, что окно пытается подстроиться под длину имени файла (вплоть до ширины окна Фара). Когда много мелких файов с разной длиной пути, то может быть неудобно.
Подумаю над предложением.
Мегамонстр wrote:Не видел исходников плагина, но думаю, что вставить код не представит проблем.
Исходники доступны там же где и бинарники.

User avatar
HaRT
Moderator
Posts: 8051
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 100 times

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by HaRT » Fri 02 Dec, 2016 14:49

Ariman wrote: окно пытается подстроиться под длину имени файла (вплоть до ширины окна Фара)
Можно было бы просто никогда не уменьшать ширину окна. Ну или уменьшать не сразу и/или только до некоего среднего значения по уже обработанным.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
Alexander84
Posts: 81
Joined: Fri 01 May, 2009 06:38
Has thanked: 6 times

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by Alexander84 » Fri 02 Dec, 2016 17:22

Ограничения это прекрасно, мобилизуют и дисциплинируют. Скажем, HDD объёмом 1 Гб и скорость подключения к сети 33.6 Кбит/с в 90-е заложили привычки хранить без бардака и качать по делу. Отсюда и пожелание видеть в плагине алгоритм xxHash, ибо хотя при обсчёте файлов он и упрётся в скорость чтения диска наравне с криптохэшами типа SHA1 или BLAKE2SP, но, как и CRC32, загрузит процессор на порядок меньше (1-4% против 30-50% на двухядерной системе), оставляя ресурсы другим приложениям и экономя электроэнергию.

Итак, как упростить для восприятия окно операции Integrity Checker? Сперва зафиксируем окно по ширине, сделаем выравнивание по левому краю, а затем критически оценим необходимость каждого динамического элемента. Например, нужно ли выводить полный путь до хэшируемого файла? Нет, как и в случае копирования/архивирования, достаточно [начало пути ... конец названия файла.расширение]. Как часто следует обновлять индикаторы, т.е. зачем эта беготня от 0% до 100%, если файл считается секунду (см. опять же копирование)? Возможно, стоит добавить прогрессбар, дабы иметь приблизительное представление о состоянии вычисления хэша, которое на удивление нагляднее, чем куча чисел («так, уже посчиталось 1234 файла из 123456, что есть x%, а это четверть, треть, чай успею попить?»).

Мегамонстр
Posts: 52
Joined: Fri 24 Aug, 2012 15:24

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by Мегамонстр » Fri 02 Dec, 2016 18:22

Я покопался в исходниках и не нашёл, использует ли плагин многопоточность. Использует ли плагин многопоточность? Было бы удобно использовать простаивающие 11 ядер.

3аодно сообщу, что присоединяюсь к замечаниям Alexander84.

Ariman
Posts: 1153
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 10 times
Been thanked: 23 times
Contact:

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by Ariman » Fri 02 Dec, 2016 20:36

HaRT wrote:Можно было бы просто никогда не уменьшать ширину окна. Ну или уменьшать не сразу и/или только до некоего среднего значения по уже обработанным.
На куче мелких файлов всё равно плясать ширина будет. Тут только если фиксировать ширину окна, как тот же копир в Фаре работает. Но тут уже вопрос как подобрать ширину оптимально.
Alexander84 wrote:Как часто следует обновлять индикаторы, т.е. зачем эта беготня от 0% до 100%, если файл считается секунду (см. опять же копирование)?
Вот тут не понял смысл. А если файл не секунду считается? Маленькие файлы пролетают от 0 до 100 за 1-2 шага.
Alexander84 wrote:Возможно, стоит добавить прогрессбар, дабы иметь приблизительное представление о состоянии вычисления хэша, которое на удивление нагляднее, чем куча чисел («так, уже посчиталось 1234 файла из 123456, что есть x%, а это четверть, треть, чай успею попить?»).
Не вижу разницы между рисованием прогресс бара и выводом числа по информативности. Это больше вопрос визуальных предпочтений.
Мегамонстр wrote:Использует ли плагин многопоточность? Было бы удобно использовать простаивающие 11 ядер.
Нет, не использует. Не рентабельно морочиться с многопоточностью, всё равно основная нагрузка на диск идет, а не на проц.

User avatar
Alexander84
Posts: 81
Joined: Fri 01 May, 2009 06:38
Has thanked: 6 times

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by Alexander84 » Fri 02 Dec, 2016 21:02

Ariman wrote: Вот тут не понял смысл. А если файл не секунду считается? Маленькие файлы пролетают от 0 до 100 за 1-2 шага.
Задача снизить мельтешение в окне операции (напомню скринкаст, 1 Мб). Нам достаточно знать, что процесс идёт и приблизительно представлять далеко ли до завершения. Поэтому если за интервал обновления (условно за секунду) посчиталось несколько файлов, то необязательно успеть вывести имя и процент завершённости каждого из них — достаточно вывести текущий файл на момент обновления.

User avatar
Alexander84
Posts: 81
Joined: Fri 01 May, 2009 06:38
Has thanked: 6 times

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by Alexander84 » Fri 02 Dec, 2016 21:37

Ariman wrote: Не вижу разницы между рисованием прогресс бара и выводом числа по информативности. Это больше вопрос визуальных предпочтений.
Это из нейропсихологии. Мозг сперва наловчился использовать приблизительные данные — например, настораживаться из-за шороха в кустах или тени за углом. Потребность в уточнении данных для принятия решения возникла гораздо позже. Вот и сегодня мы зачастую пропускаем таблицы, предпочитая графики, где опять же особо не вглядываемся в деления осей абсцисс и ординат, а ищем название линии-победителя.

Image

User avatar
zg
zero-gravity
Posts: 5253
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 42 times
Contact:

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by zg » Fri 02 Dec, 2016 23:23

Ariman wrote:Нет, не использует. Не рентабельно морочиться с многопоточностью, всё равно основная нагрузка на диск идет, а не на проц.
ntfs file information использует многопоточность. можно сравнить.

Мегамонстр
Posts: 52
Joined: Fri 24 Aug, 2012 15:24

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by Мегамонстр » Sat 03 Dec, 2016 09:21

Alexander84 wrote: Не рентабельно морочиться с многопоточностью, всё равно основная нагрузка на диск идет, а не на проц.
Даже с использованием твёрдотельника? Имеется ввиду не многопоточный расчёт суммы, а многопоточная обработка файлов, например, одно ядро считает сумму одного файла, другое ядро считает сумму другого файла и т.п.

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

Ariman
Posts: 1153
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 10 times
Been thanked: 23 times
Contact:

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by Ariman » Mon 05 Dec, 2016 13:36

Мегамонстр wrote:Даже с использованием твёрдотельника?
Не знаю, может быть. Если мне кто-нибудь подарит ssd, то можно проверить на практике :).

Мегамонстр
Posts: 52
Joined: Fri 24 Aug, 2012 15:24

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by Мегамонстр » Thu 08 Dec, 2016 09:51

Я вычислил хеш образа Убунты на HDD ST1000DM003 и SSD OCZ Agility 3. На первом время составило 16 секунд, на втором ― 7 секунд. Суммарно на расчёт образов у меня ушло 16+7+X секунд, если бы в плагине была реализована многопоточность, но потратил бы 16 секунд.

Мегамонстр
Posts: 52
Joined: Fri 24 Aug, 2012 15:24

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by Мегамонстр » Thu 08 Dec, 2016 10:10

Стоит отметить, что SSD подключён на скорости 200 Мб/с вместо обычных 400 Мб/с. Но пост был про то, что если файлы находятся на разных разделах, что часто бывает при копировании, многопоточной обработкой можно было бы здорово сократить время.

Ariman
Posts: 1153
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 10 times
Been thanked: 23 times
Contact:

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by Ariman » Mon 12 Dec, 2016 09:00

Оно то всё так, может время и сократится. Но затрат на разработку и отладку многопоточки это не оправдывает. Хеширование с разных дисков это совсем не регулярная задача, чтобы стоил ради неё морочиться.

User avatar
John Doe
Бюрократ
Posts: 11145
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 12 times
Been thanked: 73 times

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by John Doe » Tue 18 Apr, 2017 14:42

2.4.3

Generate Hashes/[x] Use filter разблокирует не соответствующую кнопку, а разделительную черту.

F1 приводит к выводу ошибки
Если как я понимаю файлов помощи заведомо нет, то неясно зачем обрабатывать F1

Ariman
Posts: 1153
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 10 times
Been thanked: 23 times
Contact:

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by Ariman » Tue 18 Apr, 2017 15:51

John Doe wrote:разблокирует не соответствующую кнопку, а разделительную черту.
Ага, есть такое. Спасибо, исправлю.
John Doe wrote:Если как я понимаю файлов помощи заведомо нет, то неясно зачем обрабатывать F1
Ну тут обработка заключается только в выставлении имени топика в функции создания диалога. :)
Изначально была мысль создать файлы помощи, но потом пришла лень, и процесс дальше не пошел. А параметры вызова остались в прежнем виде.

Post Reply

Return to “Обсуждение плагинов”