Существует ли утилита контрольной суммы, эквивалентная Hashtab для Windows?

Я использую Hashtab в Windows для вычислений хеша файла. Все, что я должен сделать, щелкнуть правой кнопкой по файлу, нажать свойства и в меню свойств была бы вкладка под названием Хеш, и это содержит хеш файла в различных форматах как MD5, SHA-1 и т.д.

Есть ли что-то как этот для Ubuntu?

6
задан 20 November 2015 в 10:35

4 ответа

Вы не говорите, какой оконный менеджер или файловый менеджер вы используете.

Если вы используете Gnome и Nautilus, вы можете установить пакет nautilus-gtkhash Install nautilus-gtkhash . Это добавляет вкладку «Дайджесты» в диалоговое окно «Свойства» для файла.

ПРИМЕЧАНИЕ. Вам придется перезапустить Nautilus с помощью nautilus -q, прежде чем появится вкладка.

0
ответ дан 20 November 2015 в 10:35

Вы могли также попробовать это "Средство проверки Хеша"

http://gnome-look.org/content/download.php?content=129309&id=1&tan=39290839

HowTo -

КАК УСТАНОВИТЬ/УДАЛИТЬ От GUI: Просто запущенный скрипт 'Установки' и следует инструкциям. От терминала: CD в папку Средства проверки Хеша и тип ‘./Setup - помогает’ (без кавычек) видеть доступные переключатели языка

ИСПОЛЬЗОВАНИЕ Используя с Наутилусом: щелкните правой кнопкой где-нибудь в Наутилусе, перейдите к Сценариям>, хеш (хеши) Проверки затем просматривает в файл, который Вы хотите проверить, или (чтобы не просматривать для файла) просто щелкают правой кнопкой по файлу, который Вы хотите проверить, затем переходят к Сценариям> хеш (хеши) Проверки. Используя с любым Файловым менеджером: Нажмите на значок на рабочем столе Средства проверки Хеша для выполнения его, затем просмотрите в файл, который Вы хотите проверить

Zenity ЗАВИСИМОСТЕЙ (для отображения GUI) md5sum и sha256sum (большинство дистрибутивов имеет их обоих по умолчанию),

Я получил его от этого сайта

http://ubuntuguide.net/md5sha256-hash-checker-gui-for-ubuntu-downloadsfiles

Можно также видеть это

http://www.sinf.gr/en/hashcalc.html

Это было упомянуто в комментариях первого сайта.

0
ответ дан 20 November 2015 в 10:35

Одним независимым от рабочего стола решением является GtkHash:

Утилита GTK + для вычислительных дайджестов сообщения или контрольных сумм

enter image description here

Если Вы используете Thunar, то можно также использовать thunar-gtkhash плагин. Это работает так же к расширению Наутилуса.

0
ответ дан 20 November 2015 в 10:35

Пользовательский сценарий наутилуса

В то время как существует несколько существующих утилит, можно всегда писать сценарий для выполнения такой задачи, которая является тем, что я сделал. Сценарий, представленный ниже, записан в Python 3 и использует встроенные функции для выполнения вычислений суммы хеша нескольких типов хеша и отображает результат в zenity текстовое окно представления.

Использование

Сначала настройте сценарий. Сохраните исходный код сценария как файл в ~/.local/share/nautilus/scripts папка. В моем примере я сохранил его как get_hashsums.py. Сделайте исполняемый файл файла через опции GUI или через chmod +x команда в терминале.

В этой точке сценарий доступен с помощью контекстного меню и будет доступен в Scripts подменю.

enter image description here

Когда Вы нажимаете get_hashsums.py , сценарий выполнит все необходимые вычисления и дисплей zenity текстовое окно представления со всеми суммами хеша, которые могут быть сделаны через hashlib.

enter image description here

Исходный код сценария

Также доступный на моем персональном репозитории GitHub (который может содержать больше добавленных опций).

#!/usr/bin/env python3
import sys
import urllib.parse
import hashlib
import os
import subprocess
import tempfile
from collections import OrderedDict as od

def get_hashsums(file_path):
    hash_sums = od()
    hash_sums['md5sum'] = hashlib.md5()
    hash_sums['sha1sum'] = hashlib.sha1()
    hash_sums['sha224sum'] = hashlib.sha224()
    hash_sums['sha256sum'] = hashlib.sha256()
    hash_sums['sha384sum'] = hashlib.sha384()
    hash_sums['sha512sum'] = hashlib.sha512()

    with open(file_path, 'rb') as fd:
        data_chunk = fd.read(1024)
        while data_chunk:
              for hashsum in hash_sums.keys():
                  hash_sums[hashsum].update(data_chunk)
              data_chunk = fd.read(1024)

    results = od()
    for key,value in hash_sums.items():
         results[key] = value.hexdigest()         
    return results

def puke(message):
    sys.stderr.write(message + '\n')
    subprocess.call(['zenity', '--error', '--text', message])
    sys.exit(2)

def write_temp_file(data):
    temp = tempfile.mkstemp()[1]
    with open(temp, 'w') as fd:
        fd.write(data)
    return temp


def main():
    uri_list = os.getenv("NAUTILUS_SCRIPT_SELECTED_URIS").strip().split()
    output_lines = []
    for uri in uri_list:
        uri_decoded = urllib.parse.unquote(uri)
        path = uri_decoded.replace('file://','').strip()
        if not os.path.isfile(path):
             puke(path+" is not a regular file")
        text = ""
        text = path + "\n" 
        hashsums = get_hashsums(path)
        for key,value in hashsums.items():
              text = text + key + " " + value + "\n"
        output_lines.append(text)

    output_file = write_temp_file("\n".join(output_lines))
    subprocess.call(['zenity','--text-info',
                     '--title','Hash Sums',
                     '--filename',output_file])
    os.unlink(output_file)

if __name__ == '__main__': 
    try:
        main()
    except Exception as e:
        puke(repr(e))
0
ответ дан 20 November 2015 в 10:35

Другие вопросы по тегам:

Похожие вопросы: