Я использую Hashtab в Windows для вычислений хеша файла. Все, что я должен сделать, щелкнуть правой кнопкой по файлу, нажать свойства и в меню свойств была бы вкладка под названием Хеш, и это содержит хеш файла в различных форматах как MD5, SHA-1 и т.д.
Есть ли что-то как этот для Ubuntu?
Вы не говорите, какой оконный менеджер или файловый менеджер вы используете.
Если вы используете Gnome и Nautilus, вы можете установить пакет nautilus-gtkhash . Это добавляет вкладку «Дайджесты» в диалоговое окно «Свойства» для файла.
ПРИМЕЧАНИЕ. Вам придется перезапустить Nautilus с помощью nautilus -q
, прежде чем появится вкладка.
Вы могли также попробовать это "Средство проверки Хеша"
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
Это было упомянуто в комментариях первого сайта.
Одним независимым от рабочего стола решением является GtkHash:
Утилита GTK + для вычислительных дайджестов сообщения или контрольных сумм
Если Вы используете Thunar, то можно также использовать thunar-gtkhash
плагин. Это работает так же к расширению Наутилуса.
В то время как существует несколько существующих утилит, можно всегда писать сценарий для выполнения такой задачи, которая является тем, что я сделал. Сценарий, представленный ниже, записан в Python 3 и использует встроенные функции для выполнения вычислений суммы хеша нескольких типов хеша и отображает результат в zenity
текстовое окно представления.
Сначала настройте сценарий. Сохраните исходный код сценария как файл в ~/.local/share/nautilus/scripts
папка. В моем примере я сохранил его как get_hashsums.py
. Сделайте исполняемый файл файла через опции GUI или через chmod +x
команда в терминале.
В этой точке сценарий доступен с помощью контекстного меню и будет доступен в Scripts
подменю.
Когда Вы нажимаете get_hashsums.py
, сценарий выполнит все необходимые вычисления и дисплей zenity
текстовое окно представления со всеми суммами хеша, которые могут быть сделаны через hashlib
.
Также доступный на моем персональном репозитории 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))