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: 144
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:

Ariman wrote: Fri 17 Nov, 2017 13:17 Я никому ничего не предлагаю. Это же не коммерческая разработка, а поделка на досуге.
Например, тот же SHA3-512 добавлялся после того, как на ru-board’е его за что-то полюбили…
Раз плагин опубликован и обсуждаем, то всё-таки предлагаете. И это похвально, ваш инструмент востребован. Вместе с тем, будучи автором единственного генератора хэшей для Фара, вы упускаете возможность повышать грамотность пользователей (давая алгоритмы только под задачу), чем косвенно поощряете разброд и шатания вроде моды на SHA3 на уважаемом ru-board, возникшей из-за использования программ, написанных исследователями новых алгоритмов. Когда нужна целостность файлов, то известно: CRC32 хорош для проверки на случайные искажения, SHA1/2 — на умышленные искажения, а покуда MD5 небезопасен и SHA3 медлен, то их проверять, но не создавать (по умолчанию).
Ariman wrote: Fri 17 Nov, 2017 13:17 Меня сильно удивляют люди, которые задвигают идеи типа «мне не надо — убирай».
Есть люди, смотрящие дальше своего носа, размышляющие о значении и влиянии вещей (меценаты, провидцы, рационализаторы). Например, купцы Третьяковы на досуге собирали живописные вершины творческих энергий, которыми люди приходят облагородиться и 150 лет спустя. Недавно калининградский школьник Сергей Горобец, собирающий на досуге модели самолётов, предложил допилить двигатель для ближне-среднемагистрального МС-21 и был приглашён «Ростехом». Вспоминаются «Дизайн для реального мира» инженера Виктора Папанека, «буддийская экономика» Эрнста Шумахера и пр., в т.ч. общественники, на досуге улучшающие дорожное движение.
Last edited by Alexander84 on Fri 24 Nov, 2017 01:18, edited 32 times in total.
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: Fri 17 Nov, 2017 15:58 Вместе с тем, будучи автором единственного генератора хэшей для Фара, вы упускаете возможность повышать грамотность пользователей (давая алгоритмы только под задачу), чем косвенно поощряете разброд и шатания вроде моды на SHA3 на уважаемом ru-board, возникшей из-за использования программ, написанных исследователями новых алгоритмов.
Вот уж что, а повышение грамотности пользователей при помощи плагина в мои планы точно никогда не входило.
Вообще, если уж душа так болит за пользователей, и есть желание что-то им повысить, то на гитхабе есть замечателная кнопка Fork. Позволяет реализовать свой взгляд на продукт без особых сложностей. Одно из основных достоинств open-source-а. Ну или можно задонатить кому-нибудь на реализацию своих идей, если с программированием не особо (тоже в духе open-source).
Alexander84 wrote: Fri 17 Nov, 2017 15:58 Есть люди, смотрящие дальше своего носа, размышляющие о значении и влиянии вещей (меценаты, провидцы, рационализаторы).
Это прекрасно, что есть такие люди. Но им, я думаю, не стоит ожидать, что все вокруг ломанутся реализовывать результаты их размышлений. А размышлять можно в неограниченных количествах.
User avatar
Alexander84
Posts: 144
Joined: Fri 01 May, 2009 06:38
Has thanked: 16 times
Been thanked: 2 times

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

Post by Alexander84 »

Ветвить проект (делать форки) уместно ради эксперимента (см. Waterfox)
и по идеологическим расхождениям (см. Pale Moon), при этом код дублируется,
а пользователя легко запутать (см. Open Office, Apache Office, Libre Office).

Убеждён, идти этим путём преждевременно или даже излишне, ибо в прошлом мы
прекрасно находили язык: улучшили окно вычисления хеша (ушло мельтешение)
и улучшили обработку путей (благодаря поддержке UNC).

Приглашаю взглянуть на макет предлагаемых изменений:
- функциональность сохранена,
- управление облегчает выбор алгоритма сообразно задаче,
- английские и русские пояснения звучат точнее и доступнее.

╔═══════ Integrity checker ════════╗ ╔══════ Integrity checker ═══════╗ ║ Generate hashlist ║ ║ Создать хешлист ║ ║ Validate hashlist ║ ║ Проверить хешлист ║ ║ Compare with hash in clipboard ║ ║ Сравнить с хешем в буфере ║ ║ Compare hashed panels ║ ║ Сравнить хешированные панели ║ ╟──────────────────────────────────╢ ╟────────────────────────────────╢ ║ Test performance ║ ║ Оценить быстродействие ║ ╚══════════════════════════════════╝ ╚════════════════════════════════╝ ╔════════════ Generate hashlist ═════════════╗ ╔═════════════ Создать хешлист ══════════════╗ ║ ║ ║ ║ ║ Algorithm Scope ║ ║ Алгоритм Область применения ║ ║ ║ ║ ║ ┌────────────┐ ┌────────────┐ ║ (•) 1 CRC32 ↓ random corruption ║ ║ (•) 1 CRC32 ↓ случайные дефекты ║ │ CRC32 │ │ SHA-160 │ ║ ( ) 2 SHA-256 ↓ intentional changes ║ ║ ( ) 2 SHA-256 ↓ умышленные изменения ║ │ MD5 │ │ SHA-256 │ ║ ║ ║ ║ └────────────┘ │ SHA-512 │ ╟─ Output ───────────────────────────────────╢ ╟─ Результат ────────────────────────────────╢ │ SHA3-512 │ ║ ║ ║ ║ └────────────┘ ║ ( ) Display ║ ║ ( ) Показать ║ ║ (•) Save all to ________________________ ║ ║ (•) Сохранить всё в ____________________ ║ ║ ( ) Save individually per file ║ ║ ( ) Сохранить отдельно для каждого файла ║ ║ ║ ║ ║ ╟─ Extras ───────────────────────────────────╢ ╟─ Дополнительно ────────────────────────────╢ ║ ║ ║ ║ ║ [x] Process subdirectories ║ ║ [x] Обработать подкаталоги ║ ║ [ ] Include full paths ║ ║ [ ] Вывести полный путь к файлам ║ ║ [ ] Apply filter ║ ║ [ ] Применить фильтр ║ ║ ║ ║ ║ ╟────────────────────────────────────────────╢ ╟────────────────────────────────────────────╢ ║ { Run } [ Filter ] [ Cancel ] ║ ║ { Выполнить } [ Фильтр ] [ Отменить ] ║ ╚════════════════════════════════════════════╝ ╚════════════════════════════════════════════╝ ╔══════════════ Configuration ═══════════════╗ ╔════════════════ Настройка ═════════════════╗ ║ ║ ║ ║ ║ Defaults ║ ║ По умолчанию ║ ║ ║ ║ ║ ║ Algorithm CRC32 ↓ ║ ║ Алгоритм CRC32 ↓ ║ ║ ║ ║ ║ Display ║ Output Save to single hashlist ↓ ║ ║ Результат Сохранять в единый хешлист ↓ ║ Save to single hashlist ║ ║ ║ ║ Save individually per file ║ Encoding UTF-8 ↓ ║ ║ Кодировка UTF-8 ↓ ║ ║ ║ ║ ║ Показывать ╟─ Behaviour ────────────────────────────────╢ ╟─ Поведение ────────────────────────────────╢ Сохранять в единый хешлист ║ ║ ║ ║ Сохранять для каждого файла ║ [x] Remember last used settings ║ ║ [x] Запоминать выбор пользователя ║ ║ [x] Adjust hashlist extension ║ ║ [x] Присваивать хешлисту расширение ║ ║ [ ] Format hash to uppercase ║ ║ [ ] Выводить хеш в верхнем регистре ║ ║ [x] Confirm process cancellation ║ ║ [x] Подтверждать остановку вычислений ║ ║ [ ] Deselect on completion ║ ║ [ ] Снимать выделение по завершении ║ ║ ║ ║ ║ ║ Plugin prefix __________________________ ║ ║ Префикс плагина ________________________ ║ ║ ║ ║ ║ ╟────────────────────────────────────────────╢ ╟────────────────────────────────────────────╢ ║ { OK } [ Cancel ] ║ ║ { OK } [ Отменить ] ║ ╚════════════════════════════════════════════╝ ╚════════════════════════════════════════════╝
Last edited by Alexander84 on Sun 26 Nov, 2017 19:22, edited 8 times in total.
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: Sun 26 Nov, 2017 02:39 Убеждён, идти этим путём преждевременно или даже излишне, ибо в прошлом мы
прекрасно находили язык: улучшили окно вычисления хеша (ушло мельтешение)
и улучшили обработку путей (благодаря поддержке UNC).
А я никогда не против предложений. Но мельтешение и UNC это были объективные недостатки, врядли найдется тот кому это нравилось. А вот вопрос целесообразности наличия алгоритмов это совершенно субъективно. Никаких реальных доводов по поводу вреда он наличия какого-либо алгоритма в плагине я не увидел.
Мы, конечно, можем долго разводить демагогию на эту тему, но в итоге ничего не изменится. Все текущие алгоритмы останутся в плагине, они мне все нужны. И убирать что-либо по чьим-либо абстрактным соображениям я не собираюсь.
User avatar
Alexander84
Posts: 144
Joined: Fri 01 May, 2009 06:38
Has thanked: 16 times
Been thanked: 2 times

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

Post by Alexander84 »

Ariman
Вы макет смотрели внимательно? Алгоритмы на месте, а для ленивого глаза даже подписано: «функциональность сохранена».
Это значит, бог с вами, оставляем алгоритмы, но чем вываливать их разом, давайте сгруппируем сообразно задаче.
У вас есть возражения или вопросы по макету?

Image
Last edited by Alexander84 on Mon 27 Nov, 2017 17:53, edited 12 times in total.
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: Mon 27 Nov, 2017 17:18 Вы макет потрудились посмотреть? Алгоритмы на месте, а для ленивого глаза даже подписано: «функциональность сохранена».
Посмотрел. И, судя по всему, не понял с первого взгляда. Ступил, бывает.
Я так понимаю (посмотрев ещё раз), идея разбить алгоритмы на 2 группы и сделать 2 комбобокса. Разбиение на группы несколько спорное, но это не принципиально. Такой подход портит удобное переключение алгоритмов по Alt-цифра. Выбор из комбобоксов требует больше телодвижений, а это уже не так удобно в использовании.
User avatar
techie
Posts: 795
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 35 times
Been thanked: 6 times

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

Post by techie »

Используйте тэг `code` вместо `ascii`.
Alexander84 wrote: Sun 26 Nov, 2017 02:39

Code: Select all

   ╔═══════ Integrity checker ════════╗                ╔══════ Integrity checker ═══════╗
   ║  Generate hashlist               ║                ║  Создать хешлист               ║
   ║  Validate hashlist               ║                ║  Проверить хешлист             ║
   ║  Compare with hash in clipboard  ║                ║  Сравнить с хешем в буфере     ║
   ║  Compare hashed panels           ║                ║  Сравнить хешированные панели  ║
   ╟──────────────────────────────────╢                ╟────────────────────────────────╢
   ║  Test performance                ║                ║  Оценить быстродействие        ║
   ╚══════════════════════════════════╝                ╚════════════════════════════════╝


   ╔════════════ Generate hashlist ═════════════╗      ╔═════════════ Создать хешлист ══════════════╗
   ║                                            ║      ║                                            ║
   ║  Algorithm          Scope                  ║      ║  Алгоритм           Область применения     ║
   ║                                            ║      ║                                            ║   ┌────────────┐   ┌────────────┐
   ║  (•) 1 CRC32     ↓  random corruption      ║      ║  (•) 1 CRC32     ↓  случайные дефекты      ║   │  CRC32     │   │  SHA-160   │
   ║  ( ) 2 SHA-256   ↓  intentional changes    ║      ║  ( ) 2 SHA-256   ↓  умышленные изменения   ║   │  MD5       │   │  SHA-256   │
   ║                                            ║      ║                                            ║   └────────────┘   │  SHA-512   │
   ╟─ Output ───────────────────────────────────╢      ╟─ Результат ────────────────────────────────╢                    │  SHA3-512  │
   ║                                            ║      ║                                            ║                    └────────────┘
   ║  ( ) Display                               ║      ║  ( ) Показать                              ║
   ║  (•) Save all to ________________________  ║      ║  (•) Сохранить всё в ____________________  ║
   ║  ( ) Save individually per file            ║      ║  ( ) Сохранить отдельно для каждого файла  ║
   ║                                            ║      ║                                            ║
   ╟─ Extras ───────────────────────────────────╢      ╟─ Дополнительно ────────────────────────────╢
   ║                                            ║      ║                                            ║
   ║  [x] Process subdirectories                ║      ║  [x] Обработать подкаталоги                ║
   ║  [ ] Include full paths                    ║      ║  [ ] Вывести полный путь к файлам          ║
   ║  [ ] Apply filter                          ║      ║  [ ] Применить фильтр                      ║
   ║                                            ║      ║                                            ║
   ╟────────────────────────────────────────────╢      ╟────────────────────────────────────────────╢
   ║       { Run } [ Filter ] [ Cancel ]        ║      ║   { Выполнить } [ Фильтр ] [ Отменить ]    ║
   ╚════════════════════════════════════════════╝      ╚════════════════════════════════════════════╝


   ╔══════════════ Configuration ═══════════════╗      ╔════════════════ Настройка ═════════════════╗
   ║                                            ║      ║                                            ║
   ║  Defaults                                  ║      ║  По умолчанию                              ║
   ║                                            ║      ║                                            ║
   ║  Algorithm  CRC32     ↓                    ║      ║  Алгоритм   CRC32     ↓                    ║
   ║                                            ║      ║                                            ║    Display
   ║  Output     Save to single hashlist ↓      ║      ║  Результат  Сохранять в единый хешлист ↓   ║    Save to single hashlist
   ║                                            ║      ║                                            ║    Save individually per file
   ║  Encoding   UTF-8     ↓                    ║      ║  Кодировка  UTF-8     ↓                    ║
   ║                                            ║      ║                                            ║    Показывать
   ╟─ Behaviour ────────────────────────────────╢      ╟─ Поведение ────────────────────────────────╢    Сохранять в единый хешлист
   ║                                            ║      ║                                            ║    Сохранять для каждого файла
   ║  [x] Remember last used settings           ║      ║  [x] Запоминать выбор пользователя         ║
   ║  [x] Adjust hashlist extension             ║      ║  [x] Присваивать хешлисту расширение       ║
   ║  [ ] Format hash to uppercase              ║      ║  [ ] Выводить хеш в верхнем регистре       ║
   ║  [x] Confirm process cancellation          ║      ║  [x] Подтверждать остановку вычислений     ║
   ║  [ ] Deselect on completion                ║      ║  [ ] Снимать выделение по завершении       ║
   ║                                            ║      ║                                            ║
   ║  Plugin prefix __________________________  ║      ║  Префикс плагина ________________________  ║
   ║                                            ║      ║                                            ║
   ╟────────────────────────────────────────────╢      ╟────────────────────────────────────────────╢
   ║             { OK } [ Cancel ]              ║      ║            { OK } [ Отменить ]             ║
   ╚════════════════════════════════════════════╝      ╚════════════════════════════════════════════╝
skipik
Posts: 318
Joined: Wed 03 Jun, 2015 15:24
Has thanked: 67 times
Been thanked: 29 times

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

Post by skipik »

https://www.upload.ee/files/9506804/bin.7z.html
Свежий билд из актуальных исходников, если кому захочется потестить\обновиться.
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

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

Post by buniak_a_h »

Не поясните, что означает настройка "префикс командной строки"? Точнее, что должен делать плагин, если, стоя на файле, я ввожу check:<имя_файла>? У меня всё время вылезает ошибка

Code: Select all

 ╔════════════ Error ════════════╗
 ║ File is not a valid hash list ║
 ╟───────────────────────────────╢
 ║            { OK }             ║
 ╚═══════════════════════════════╝
И что такое hash list?
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

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

Post by HaRT »

buniak_a_h wrote: Sat 02 Feb, 2019 02:17 что такое hash list?
Подозреваю, что файл примерно такого содержания: (получен вызовом md5sum.exe в директории Фара).
Или, например, такого: (скачан с офсайта GStreamer по соседству с инсталлятором)
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

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

Post by buniak_a_h »

HaRT wrote: Sat 02 Feb, 2019 02:45Подозреваю...
Спасибо. Увы, всё равно непонятно, что делает вызов плагина через префикс командной строки.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

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

Post by HaRT »

buniak_a_h wrote: Sat 02 Feb, 2019 02:52 всё равно непонятно, что делает вызов плагина через префикс командной строки
Судя по тексту префикса и по сообщению об ошибке, то же, что и аргумент --check у md5sum.exe и у sha1sum.exe, — проверку контрольных сумм файлов по списку.
Фар есть инструмент, а не нянька. © 2009 DrKnS
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: Sat 02 Feb, 2019 02:45 Подозреваю, что файл примерно такого содержания:
Так и есть. Это файл со списком хешей. Может название не самое лучшее, но другого не придумал.
buniak_a_h wrote: Sat 02 Feb, 2019 02:17 Я надеялся получить контрольную сумму по выбранному алгоритму для текущего или отмеченных файлов
Префикс делает наоборот - проверяет файлы по заранее полученным хешам.
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

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

Post by buniak_a_h »

Ariman wrote: Sat 02 Feb, 2019 08:14 Префикс делает наоборот - проверяет файлы по заранее полученным хешам.
Да уж понял... Реализовал желаемое через CommandLine.
P/S может, имеет смысл включить в комплект поставки такого типа lua?
  1. CommandLine {
  2.  
  3.   description="Calculate hash for the file under the cursor";
  4.  
  5.   prefixes="crc";
  6.  
  7.   action=function()
  8.  
  9.     local fn=APanel.Path0.."\\"..APanel.Current
  10.  
  11.     if mf.fexist(fn) and not APanel.Folder then
  12.  
  13.       Far.DisableHistory(-1)
  14.  
  15.       far.Show (Plugin.SyncCall("E186306E-3B0D-48C1-9668-ED7CF64C0E65",
  16.  
  17.                 "gethash", "crc32", fn):upper())
  18.  
  19.     end
  20.  
  21.   end;
  22.  
  23. }
Last edited by buniak_a_h on Sat 02 Feb, 2019 12:10, edited 1 time in total.
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 »

buniak_a_h wrote: Sat 02 Feb, 2019 12:07 может, имеет смысл включить в комплект поставки такого типа lua?
Есть же уже похожий скрипт в комплекте, для md5. Какой смысл плодить их для каждого алгоритма, кому надо, поправит под свои нужды.
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

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

Post by buniak_a_h »

Ariman wrote: Sun 03 Feb, 2019 15:52
buniak_a_h wrote: Sat 02 Feb, 2019 12:07 может, имеет смысл включить в комплект поставки такого типа lua?
Есть же уже похожий скрипт в комплекте, для md5. Какой смысл плодить их для каждого алгоритма, кому надо, поправит под свои нужды.
Я про назначение префикса. Есессно, я за основу (как пример) взял из поставки. Просто не все знают про CommandLine. А про разные алгоритмы - я не по уши деревянный, чтоб такое предлагать.
Last edited by buniak_a_h on Sun 03 Feb, 2019 17:46, edited 1 time in total.
Post Reply

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