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

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

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

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

Анонс

Хотелки от пользователей:
  • работа с плагиновыми панелями, на которых реальные файлы
  • сравнить хэш с содержимым клипборда
  • возможность использовать upper case для шестнадцатеричного вывода
  • поддержка выбора кодировки для файлов хеш-листов
  • опция 1 хеш файл на 1 каталог
  • генерация одновременно нескольких хешей для файла
  • возможность сравнить вновь вычисленный хэш с предыдущим
  • запуск генератора через префикс
  • сохранение в лог ошибок при генерации
Для желающих тестировать последние изменения, актуальные бинарники можно взять здесь.
Last edited by Ariman on Tue 26 Nov, 2019 17:28, edited 12 times in total.

Ariman
Posts: 1254
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 12 times
Been thanked: 28 times
Contact:

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

Post by Ariman » Mon 20 Nov, 2017 10:33

Latest post of the previous page:

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: 123
Joined: Fri 01 May, 2009 06:38
Has thanked: 14 times
Been thanked: 2 times

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

Post by Alexander84 » Sun 26 Nov, 2017 02:39

Ветвить проект (делать форки) уместно ради эксперимента (см. 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: 1254
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 12 times
Been thanked: 28 times
Contact:

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

Post by Ariman » Mon 27 Nov, 2017 14:48

Alexander84 wrote:
Sun 26 Nov, 2017 02:39
Убеждён, идти этим путём преждевременно или даже излишне, ибо в прошлом мы
прекрасно находили язык: улучшили окно вычисления хеша (ушло мельтешение)
и улучшили обработку путей (благодаря поддержке UNC).
А я никогда не против предложений. Но мельтешение и UNC это были объективные недостатки, врядли найдется тот кому это нравилось. А вот вопрос целесообразности наличия алгоритмов это совершенно субъективно. Никаких реальных доводов по поводу вреда он наличия какого-либо алгоритма в плагине я не увидел.
Мы, конечно, можем долго разводить демагогию на эту тему, но в итоге ничего не изменится. Все текущие алгоритмы останутся в плагине, они мне все нужны. И убирать что-либо по чьим-либо абстрактным соображениям я не собираюсь.

User avatar
Alexander84
Posts: 123
Joined: Fri 01 May, 2009 06:38
Has thanked: 14 times
Been thanked: 2 times

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

Post by Alexander84 » Mon 27 Nov, 2017 17:18

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

Image
Last edited by Alexander84 on Mon 27 Nov, 2017 17:53, edited 12 times in total.

Ariman
Posts: 1254
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 12 times
Been thanked: 28 times
Contact:

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

Post by Ariman » Mon 27 Nov, 2017 17:58

Alexander84 wrote:
Mon 27 Nov, 2017 17:18
Вы макет потрудились посмотреть? Алгоритмы на месте, а для ленивого глаза даже подписано: «функциональность сохранена».
Посмотрел. И, судя по всему, не понял с первого взгляда. Ступил, бывает.
Я так понимаю (посмотрев ещё раз), идея разбить алгоритмы на 2 группы и сделать 2 комбобокса. Разбиение на группы несколько спорное, но это не принципиально. Такой подход портит удобное переключение алгоритмов по Alt-цифра. Выбор из комбобоксов требует больше телодвижений, а это уже не так удобно в использовании.

User avatar
techie
Posts: 782
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 33 times
Been thanked: 3 times

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

Post by techie » Mon 01 Jan, 2018 12:51

Используйте тэг `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: 153
Joined: Wed 03 Jun, 2015 15:24
Has thanked: 18 times
Been thanked: 15 times

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

Post by skipik » Fri 01 Feb, 2019 16:50

https://www.upload.ee/files/9506804/bin.7z.html
Свежий билд из актуальных исходников, если кому захочется потестить\обновиться.

buniak_a_h
Posts: 1224
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 88 times
Been thanked: 68 times
Contact:

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

Post by buniak_a_h » Sat 02 Feb, 2019 02:17

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

Code: Select all

 ╔════════════ Error ════════════╗
 ║ File is not a valid hash list ║
 ╟───────────────────────────────╢
 ║            { OK }             ║
 ╚═══════════════════════════════╝
И что такое hash list?

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

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

Post by HaRT » Sat 02 Feb, 2019 02:45

buniak_a_h wrote:
Sat 02 Feb, 2019 02:17
что такое hash list?
Подозреваю, что файл примерно такого содержания: (получен вызовом md5sum.exe в директории Фара).
Или, например, такого: (скачан с офсайта GStreamer по соседству с инсталлятором)
Фар есть инструмент, а не нянька. © 2009 DrKnS

buniak_a_h
Posts: 1224
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 88 times
Been thanked: 68 times
Contact:

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

Post by buniak_a_h » Sat 02 Feb, 2019 02:52

HaRT wrote:
Sat 02 Feb, 2019 02:45
Подозреваю...
Спасибо. Увы, всё равно непонятно, что делает вызов плагина через префикс командной строки.

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

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

Post by HaRT » Sat 02 Feb, 2019 02:57

buniak_a_h wrote:
Sat 02 Feb, 2019 02:52
всё равно непонятно, что делает вызов плагина через префикс командной строки
Судя по тексту префикса и по сообщению об ошибке, то же, что и аргумент --check у md5sum.exe и у sha1sum.exe, — проверку контрольных сумм файлов по списку.
Фар есть инструмент, а не нянька. © 2009 DrKnS

Ariman
Posts: 1254
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 12 times
Been thanked: 28 times
Contact:

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

Post by Ariman » Sat 02 Feb, 2019 08:14

HaRT wrote:
Sat 02 Feb, 2019 02:45
Подозреваю, что файл примерно такого содержания:
Так и есть. Это файл со списком хешей. Может название не самое лучшее, но другого не придумал.
buniak_a_h wrote:
Sat 02 Feb, 2019 02:17
Я надеялся получить контрольную сумму по выбранному алгоритму для текущего или отмеченных файлов
Префикс делает наоборот - проверяет файлы по заранее полученным хешам.

buniak_a_h
Posts: 1224
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 88 times
Been thanked: 68 times
Contact:

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

Post by buniak_a_h » Sat 02 Feb, 2019 12:07

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

Ariman
Posts: 1254
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 12 times
Been thanked: 28 times
Contact:

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

Post by Ariman » Sun 03 Feb, 2019 15:52

buniak_a_h wrote:
Sat 02 Feb, 2019 12:07
может, имеет смысл включить в комплект поставки такого типа lua?
Есть же уже похожий скрипт в комплекте, для md5. Какой смысл плодить их для каждого алгоритма, кому надо, поправит под свои нужды.

buniak_a_h
Posts: 1224
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 88 times
Been thanked: 68 times
Contact:

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

Post by buniak_a_h » Sun 03 Feb, 2019 16:02

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.

Heir
Posts: 4
Joined: Wed 09 Jan, 2019 15:17
Has thanked: 3 times

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

Post by Heir » Mon 04 Feb, 2019 17:19

buniak_a_h Полезный макрос обнародовали. Ещё хорошо бы результат в Буфер помещать.

И ещё, чтобы префиксы вручную не набивать можно вот такой пользовать, просто медленно последовательно нажимая одну и ту же цифру (или знак — меняется легко).
Attachments
вставкаВкомстрокуПоКругуПрефиксовРасчетаКсНажатиемЦифры2(Heir)con.lua
(2.15 KiB) Downloaded 48 times

buniak_a_h
Posts: 1224
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 88 times
Been thanked: 68 times
Contact:

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

Post by buniak_a_h » Mon 04 Feb, 2019 18:06

Heir wrote:
Mon 04 Feb, 2019 17:19
Ещё хорошо бы результат в Буфер помещать.
У меня для этого есть свой макрос

Одно нажатие лишнее, зато мне далеко не всегда требуется помещать его в буфер (а иногда - и нельзя: в буфере что-то нужное).
Можно было бы заменить far.Show на far.Message с кнопками "в буфер", "в комстроку", "закрыть". Было бы универсальнее, но лениво...

Post Reply

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