Existe um utilitário de checksum equivalente ao Hashtab for Windows?

6

Eu uso o Hashtab no Windows para calcular o hash de um arquivo. Tudo o que tenho que fazer é clicar com o botão direito do mouse no arquivo, clicar em propriedades e no menu de propriedades haverá uma aba chamada Hash e ela contém o hash do arquivo em diferentes formatos como MD5, SHA-1 etc.

Existe algo parecido com o Ubuntu?

    
por Ufoguy 14.09.2013 / 12:06

4 respostas

6

Você não diz qual gerenciador de janelas ou gerenciador de arquivos você está usando.

Se você estiver usando o Gnome e o Nautilus, você pode instalar o nautilus-gtkhash .Issoadicionaumaguia"Digests" à caixa de diálogo Properties para um arquivo.

NOTA: Você terá que reiniciar o Nautilus com nautilus -q antes da aba aparecer.

    
por Phoeey 14.09.2013 / 12:25
0

Você também pode tentar este "Verificador de hash"

link

HowTo -

COMO INSTALAR / DESINSTALAR Da GUI: Basta executar o script "Configuração" e seguir as instruções. Do terminal: Entre na pasta do Hash Checker e digite "./Setup –help" (sem aspas) para ver as opções de idioma disponíveis

USO Usando com o Nautilus: Clique com o botão direito em algum lugar no Nautilus, vá para Scripts > Verifique o hash (es) e navegue até o arquivo que deseja verificar ou (para evitar procurar um arquivo) basta clicar com o botão direito no arquivo que você deseja verificar, em seguida, vá para Scripts > Verifique o hash (es). Usando com qualquer gerenciador de arquivos: Clique no ícone da área de trabalho do Hash Checker para executá-lo e navegue até o arquivo que deseja verificar

DEPENDÊNCIAS Zenity (para exibir GUI) md5sum e sha256sum (a maioria das distribuições tem ambos por padrão)

Eu peguei deste site

link

Você também pode ver isso

link

Isso foi mencionado nos comentários do primeiro site.

    
por Aaditya Bagga 14.09.2013 / 12:29
0

Uma solução independente de desktop é o GtkHash :

A GTK+ utility for computing message digests or checksums

Se você estiver usando Thunar, então você pode também usar o plugin thunar-gtkhash . Ele funciona de maneira semelhante à extensão Nautilus.

    
por landroni 24.11.2015 / 23:20
0

Script personalizado do Nautilus

Embora existam alguns utilitários existentes, pode-se sempre escrever um script para executar tal tarefa, que é o que eu fiz. O script apresentado abaixo é escrito em Python 3 e usa funções internas para executar cálculos de soma de hash de vários tipos de hash e exibe o resultado na janela de exibição de texto zenity .

Uso

Primeiro, configure o script. Salve o código-fonte do script como arquivo na pasta ~/.local/share/nautilus/scripts . No meu exemplo, salvei como get_hashsums.py . Torne o arquivo executável via opções GUI ou através do comando chmod +x no terminal.

Neste ponto, o script é acessível através do menu do botão direito do mouse e estará disponível no submenu Scripts .

Aoclicarnoget_hashsums.py,oscriptexecutarátodososcálculosnecessárioseexibiráajaneladeexibiçãodetextozenitycomtodasassomasdehashquepodemserfeitasviahashlib.

Código-fontedoscript

Tambémdisponívelnomeu repositório do GitHub pessoal (que pode conter mais recursos adicionados).

#!/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))
    
por Sergiy Kolodyazhnyy 08.07.2017 / 01:40