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

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

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

Post by Ariman »

Анонс

Хотелки от пользователей:
  • работа с плагиновыми панелями, на которых реальные файлы
  • сравнить хэш с содержимым клипборда
  • возможность использовать upper case для шестнадцатеричного вывода
  • поддержка выбора кодировки для файлов хеш-листов
  • опция 1 хеш файл на 1 каталог
  • генерация одновременно нескольких хешей для файла
  • возможность сравнить вновь вычисленный хэш с предыдущим
  • запуск генератора через префикс
  • сохранение в лог ошибок при генерации
  • добавить поддержку ed2k хешей
Для желающих тестировать последние изменения, актуальные бинарники можно взять здесь. (Уже нельзя)
Last edited by Ariman on Tue 04 May, 2021 08:01, edited 14 times in total.
User avatar
Alexander84
Posts: 147
Joined: Fri 01 May, 2009 06:38
Has thanked: 16 times
Been thanked: 2 times

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

Post by Alexander84 »

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: 73
Joined: Fri 24 Aug, 2012 15:24
Been thanked: 1 time

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

Post by Мегамонстр »

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

Я тоже считаю, что xxHash должен иметь место в этом плагине. Я скачал исходники xxhsum, скомпилил и не встретил никаких проблем с ними. Не видел исходников плагина, но думаю, что вставить код не представит проблем.
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

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

Post by Ariman »

Alexander84 wrote:Т.е. библиотека чужая, а вы автор обвязки для Фара? Понял.
При хорошем разнообразии библиотек писать свою как-то глупо. Используется у меня RHash.
Alexander84 wrote:Тогда снимаю вопрос, зачем тут SHA512 и тем более Whirlpool — криптохэши, скорость вычисления и визуальная длина которых малопригодны (а потому и мало распространены) для проверки целостности файлов (эти алгоритмы чаще используют для паролей и подписей). Реально востребованы CRC32 (жаль нет более современного и менее прожорливого CRC32C), MD5, SHA1, с натяжкой SHA256 и BLAKE2SP-256.
Ну SHA256 сейчас стал хорошо распространятся во всяких Unix системах.
Добавление алгоритма в плагин, из уже имеющихся в библиотеке, по сути, требует только изменений в интерфейсе. Так что выбор того что использовать не был чем-то глубоко продуманным, выбрал то что посчитал полезным. Если бы их требовалось внедрять по отдельности, то другой вопрос.
Alexander84 wrote:ведь каждая строчка при обсчёте файлов дёргается туда-сюда!
Дергание происходит от того, что окно пытается подстроиться под длину имени файла (вплоть до ширины окна Фара). Когда много мелких файов с разной длиной пути, то может быть неудобно.
Подумаю над предложением.
Мегамонстр wrote:Не видел исходников плагина, но думаю, что вставить код не представит проблем.
Исходники доступны там же где и бинарники.
User avatar
HaRT
Moderator
Posts: 10823
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

Ariman wrote: окно пытается подстроиться под длину имени файла (вплоть до ширины окна Фара)
Можно было бы просто никогда не уменьшать ширину окна. Ну или уменьшать не сразу и/или только до некоего среднего значения по уже обработанным.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Alexander84
Posts: 147
Joined: Fri 01 May, 2009 06:38
Has thanked: 16 times
Been thanked: 2 times

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

Post by Alexander84 »

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

Итак, как упростить для восприятия окно операции Integrity Checker? Сперва зафиксируем окно по ширине, сделаем выравнивание по левому краю, а затем критически оценим необходимость каждого динамического элемента. Например, нужно ли выводить полный путь до хэшируемого файла? Нет, как и в случае копирования/архивирования, достаточно [начало пути ... конец названия файла.расширение]. Как часто следует обновлять индикаторы, т.е. зачем эта беготня от 0% до 100%, если файл считается секунду (см. опять же копирование)? Возможно, стоит добавить прогрессбар, дабы иметь приблизительное представление о состоянии вычисления хэша, которое на удивление нагляднее, чем куча чисел («так, уже посчиталось 1234 файла из 123456, что есть x%, а это четверть, треть, чай успею попить?»).
Мегамонстр
Posts: 73
Joined: Fri 24 Aug, 2012 15:24
Been thanked: 1 time

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

Post by Мегамонстр »

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

3аодно сообщу, что присоединяюсь к замечаниям Alexander84.
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

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

Post by Ariman »

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

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

Post by Alexander84 »

Ariman wrote: Вот тут не понял смысл. А если файл не секунду считается? Маленькие файлы пролетают от 0 до 100 за 1-2 шага.
Задача снизить мельтешение в окне операции (напомню скринкаст, 1 Мб). Нам достаточно знать, что процесс идёт и приблизительно представлять далеко ли до завершения. Поэтому если за интервал обновления (условно за секунду) посчиталось несколько файлов, то необязательно успеть вывести имя и процент завершённости каждого из них — достаточно вывести текущий файл на момент обновления.
User avatar
Alexander84
Posts: 147
Joined: Fri 01 May, 2009 06:38
Has thanked: 16 times
Been thanked: 2 times

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

Post by Alexander84 »

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

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

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

Post by zg »

Ariman wrote:Нет, не использует. Не рентабельно морочиться с многопоточностью, всё равно основная нагрузка на диск идет, а не на проц.
ntfs file information использует многопоточность. можно сравнить.
Мегамонстр
Posts: 73
Joined: Fri 24 Aug, 2012 15:24
Been thanked: 1 time

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

Post by Мегамонстр »

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

Кроме того, файлы могут располагаться на разных дисках, что часто бывает при сравнении (они могут передаваться в плагин через временную панель).
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

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

Post by Ariman »

Мегамонстр wrote:Даже с использованием твёрдотельника?
Не знаю, может быть. Если мне кто-нибудь подарит ssd, то можно проверить на практике :).
Мегамонстр
Posts: 73
Joined: Fri 24 Aug, 2012 15:24
Been thanked: 1 time

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

Post by Мегамонстр »

Я вычислил хеш образа Убунты на HDD ST1000DM003 и SSD OCZ Agility 3. На первом время составило 16 секунд, на втором ― 7 секунд. Суммарно на расчёт образов у меня ушло 16+7+X секунд, если бы в плагине была реализована многопоточность, но потратил бы 16 секунд.
Мегамонстр
Posts: 73
Joined: Fri 24 Aug, 2012 15:24
Been thanked: 1 time

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

Post by Мегамонстр »

Стоит отметить, что SSD подключён на скорости 200 Мб/с вместо обычных 400 Мб/с. Но пост был про то, что если файлы находятся на разных разделах, что часто бывает при копировании, многопоточной обработкой можно было бы здорово сократить время.
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

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

Post by Ariman »

Оно то всё так, может время и сократится. Но затрат на разработку и отладку многопоточки это не оправдывает. Хеширование с разных дисков это совсем не регулярная задача, чтобы стоил ради неё морочиться.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

2.4.3

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

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

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